Compile a txt file of image urls, download the images, resize them. Pretty simple, pretty ghetto. This is a proof for something much larger I will post a later date. This requires Image::Resize which requires GD.
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use Image::Resize; use LWP::UserAgent; use Getopt::Long; my $x; my $y; my $url; my $input; my $outdir; my $verbose = 1; sub do_options { my $var = GetOptions( 'i|input=s' => \$input, 'u|url=s' => \$url, 'x=s' => \$x, 'y=s' => \$y, 'o|outdir=s' => \$outdir ); _Usage("Outdir not specified\n") if (!defined($outdir)); _Usage("Missing X and Y axis sizes\n") if (!defined($x) || !defined($y)); _Usage("Missing input file or URL\n") if (!defined($input)); setup_dir(); return; } sub setup_dir { if( -d $outdir ) { warn "WARN: $outdir already exists!\n"; if( -d "$outdir/new" ) { warn "WARN: $outdir/new already exists!\n"; } if( -d "$outdir/old" ) { warn "WARN: $outdir/old already exists!\n"; } warn "WARN: Using directories that have already been created\n"; return; } else { if(`mkdir -p $outdir/old $outdir/new`) { print "INFO: Setup $outdir\n"; return; } else { die("DIE: Could not setup old/new directories in $outdir\n"); } } } sub _Usage { my $message = shift; print $message; print "No help message yet\n"; exit(1); } sub main { do_options(); my $ua = LWP::UserAgent->new( agent => 'Mozilla or something' ); my @urls = setup(); foreach my $img (@urls) { chomp($img); my $resp = $ua->get($img); if($resp->is_success()) { my $filename; while($img =~ /^(.*)\/(.*)$/g) { $filename = $2; } print $filename if($verbose); open (FIL, ">$outdir/old/$filename") || die("error:[$filename] $!"); print FIL $resp->content || warn("error:[$filename] $!"); close(FIL); my $image = Image::Resize->new("$outdir/old/$filename"); my $gd = $image->resize($x, $y); open(NEW, ">$outdir/new/$filename") || die("error:[$filename] $!"); print NEW $gd->jpeg(); close(NEW); } } } sub setup { my @urls; if($input) { open FILE, "<$input" or die "Could not open $input: $!\n"; @urls = <FILE>; close(FILE); return @urls; } elsif($url) { push(@urls, $url); return @urls; } else { die("No input file or url specified\n"); } } main(); exit(0);