in reply to Re: endless loop problems
in thread endless loop problems

Hi. I have been playing with this all afternoon and I can't get the output to work.

It just doesn't size some of the images.

my $pics_found = $#found_images + 1; while (@found_galleries && @found_images <= $pics_to_find * 20) { # Remove one gallery link at a time until we're done. my $gal_url = pop(@found_galleries); my $gal = get($gal_url); print "gal = $gal_url<br>"; # Extract the image URLs from the gallery page. my @image_urls = $gal =~ m#(http://images\.imagefap\.com/images/thu +mb/\d+/\d+/\d+\.jpg)#g; foreach my $img (@image_urls) { $img =~ s/thumb/full/ig; } # Remove the images which are too big. if ($limit_img_size eq "yes") { @image_urls = grep { my $this_url = $_; my $image = get($this_url); my ($height, $width) = imgsize(\$image); print "IMG $this_url is $height and $width<br>"; $height <= $max_height && $width <= $max_width } @image_urls; } push @found_images, @image_urls; }
The output below is generally what I get. It will put the size down for a few of them but only rarely.
gal = http://www.imagefap.com/gallery.php?gid=158098 IMG http://images.imagefap.com/images/full/5/190/190037365.jpg is and IMG http://images.imagefap.com/images/full/6/804/804735625.jpg is and IMG http://images.imagefap.com/images/full/7/478/478782005.jpg is and IMG http://images.imagefap.com/images/full/10/199/1994599748.jpg is an +d IMG http://images.imagefap.com/images/full/4/115/1151974238.jpg is and
I don't suppose you or anyone else can see what's going wrong?

Replies are listed 'Best First'.
Re^3: endless loop problems
by ikegami (Patriarch) on Jun 28, 2006 at 20:35 UTC

    It works for me, or rather, the following does:

    use strict; use warnings; use Data::Dumper qw( Dumper ); use Image::Size qw( imgsize ); use LWP::Simple qw( get ); my $this_url = "http://images.imagefap.com/images/full/5/190/190037365 +.jpg"; my $image = get($this_url); my ($height, $width) = imgsize(\$image); print "IMG $this_url is $height and $width\n"; __END__ IMG http://images.imagefap.com/images/full/5/190/190037365.jpg is 507 +and 760

    Make sure $image is defined. Maybe an error occured during the download?

    print(defined($image) ? "Ok." : "Error!", "<br>");

    Oh! And make sure your version of Image::Size accepts images passed as \$image.

    PS -
    foreach my $img (@image_urls) { $img =~ s/thumb/full/ig; }
    can be written as
    s/thumb/full/i foreach @image_urls;