Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re^2: Unexpected Image::Info failure

by sulfericacid (Deacon)
on Feb 25, 2006 at 16:44 UTC ( [id://532779]=note: print w/replies, xml ) Need Help??


in reply to Re: Unexpected Image::Info failure
in thread Unexpected Image::Info failure

Are you saying you can't load the image then?

I used LWP on $img_src and it prints back lots of ooblygoop. So it looks like it finds the image.



"Age is nothing more than an inaccurate number bestowed upon us at birth as just another means for others to judge and classify us"

sulfericacid

Replies are listed 'Best First'.
Re^3: Unexpected Image::Info failure
by Fletch (Bishop) on Feb 25, 2006 at 17:06 UTC

    Yes, because LWP makes an HTTP request and retrieves the contents. Perl's open will not open an URL. URLs are not local paths, hence the open and -e fail.

Re^3: Unexpected Image::Info failure
by zentara (Archbishop) on Feb 25, 2006 at 19:58 UTC
    What is happening is some html magic. The browser will automatically retreive an imageURL if it's in the html tag for the image, and it will end up in the browser's cache. So your cgi program is telling the client's browser to "look at this url" for an image, and the browser does it. So if you open this html file on your local machine, and open it in a browser, you will see the image, but the image is buried deep in the browser's catch.
    <HTML> <BODY> <IMG SRC="http://www.zentara.net/anim_a_s_r.gif" HEIGHT=65 WIDTH=75 a +lt="[zentara]" align=left> </BODY> </HTML>
    So your cgi script does nothing but pass that url to the browser, it does not get the file.

    The gobbldeeGook which you get when you use lwp to retreive the file, is the actual binary data of the image. You need to save it to a scalar( or a temp file) then run your image info routine on it.

    #!/usr/bin/perl use warnings; use strict; use LWP::Simple; use Image::Info qw(image_info dim); my $data = get("http://www.learntogoogle.com/images/addform.jpg"); # this will print binary junk #print "$data\n"; my $info = image_info( \$data ); if (my $error = $info->{error}) { die "Can't parse image info: $error\n"; } my($w, $h) = dim($info); print "$w $h\n";

    I'm not really a human, but I play one on earth. flash japh

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://532779]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2024-04-19 01:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found