Forum Doku Wiki Blog

Forumsarchiv 2005, November
bilder komprimieren

archivierte Beiträge lesen

  1. (CGI) bilder komprimieren von Tim, 26. 11. 2005, 13:54

bilder komprimieren

Der folgende Beitrag wurde am 26. 11. 2005, 13:54 Uhr von Tim veröffentlicht.

hallo ihr wissenden

ein schönen samstag erst einmal! ihr sitzt hoffentlich im warmen?


so die frage, die mich zum verzweifeln bringt:

wie kann ich ein bild mittels perl/cgi komprimieren?
heißt also.

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.


mit php ist das wohl kein problem.
da der kunde aber alles in perl haben will, muss das wohl so sein.

vielleicht jemand einen ansatz, oder aus zeitmagel so´n paar codesnippets?


alles was helfen könnte ist erwünscht.


vielen dank und ein schönes 1.advents wochenende!

mfg
tim

bilder komprimieren

Der folgende Beitrag wurde am 26. 11. 2005, 14:25 Uhr von Markus Pitha veröffentlicht.

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?


     

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4