Markus Pitha: bilder komprimieren

Beitrag lesen

Hallo,

das bild zum upload ist 500x500 und xx kb.
mir zu groß.

möchte die kb und px verringern und erst dann speichern bzw. senden.

Ich verstehe nicht ganz, wie du dir das vorstellst? Wie soll Perl vom Server aus eine Grafik auf dem Computer verkleiner _bevor_ sie sich am Server befindet, oder habe ich etwas falsch verstanden, oder suchst du mit Perl eine Lösung, mit der du lokal eine Grafik verkleinern kannst?
Ein Kommandozeilenscript mit Image::Magick und Image::Size (beide standardmäßig nicht mit Perl ausgeliefert) kannst du haben. Ggf. wirst du es anpassen müssen, da es keine Unterverzeichnisse miteinbezieht.

  
#!/usr/bin/perl -w  
  
use strict;  
use Image::Magick;  
use Image::Size;  
my @grafiken = ();  
my $x_faktor = 1.5;  
my $y_faktor = 1.5;  
  
opendir (DIR,'.') or die "Cant open directory : $!n";  
         while (defined($_ = readdir DIR)) {  
                   if ($_ =~ /^.+?\.(jpe?g|gif|png)$/i) {  
                   push @grafiken, $_;  
                   }  
         }  
closedir DIR;  
  
foreach(@grafiken) {  
my $image = Image::Magick->new;  
my $img = $image->Read($_);  
my ($x, $y) = imgsize($_);  
  my ($filename,$extension) = ($1,$2) if $_ =~ /^(.+?)\.(jpe?g|gif|png)$/i;  
  my ($width, $height) = ($x / $x_faktor, $y / $y_faktor);  
  $img = $image->Resize("$width x $height");  
  $img = $image->Write($filename.'.'.$extension);  
  
print "Foto $filename.$extension in Arbeit...\n";  
}  

Markus.

--
http://www.apostrophitis.at
STANDAR_D_  - ist das wirklich so schwer?