use GD; my $x = GD::Image->new('start.png'); open OUT, '>end.png'; print OUT $x->png(0); # Use least compression # Or ... use GD; my $x = GD::Image->new('start.jpeg'); open OUT, '>end.jpeg'; print OUT $x->jpeg(100); # Use best quality