open ( UPLOADFILE, ">".$site->{cfg}{var}{full_content_path}.$site->{cfg}{images}{original_dir}.$sourcename ) or die "Cannot open image file $!"; binmode (UPLOADFILE); while ( <$filehandle> ){ print UPLOADFILE; } # proceed, convert if needed, resize etc. if (-e $site->{cfg}{var}{full_content_path}.$site->{cfg}{images}{original_dir}.$sourcename){ my $method = $gd_ext{$extension}; my $original = GD::Image->$method($site->{cfg}{var}{full_content_path}.$site->{cfg}{images}{original_dir}.$sourcename,1) or die "Can't load original $sourcename: $!"; # calculate new height multiplication factor my ($width, $height) = $original->getBounds(); my $factor = ($width > $height) ? ($height / $width) : ($height / $width); foreach my $pre(@prefix){ my ($w,$h) = split('x',$site->{cfg}{images}{$pre.'_wh'}); my $n_height=int($factor*$w); my $image = GD::Image->new($w, $n_height, 1); $image->copyResampled($original, 0, 0, 0, 0, $w, $n_height, $original->width, $original->height); open(FH, ">".$site->{cfg}{var}{full_content_path}.$site->{cfg}{images}{$pre.'_dir'}.$pre.'_'.$filename.'.jpg') or die "Cannot open image file ".$pre."_$filename $!"; binmode(FH); print FH $image->jpeg(100); close(FH); }