Hallo 1211chef,
ein funktionierendes Vorgehen ist: ImageMagicks
convert
mit-auto-orient
das Bild richtig drehen lassen und mit-strip
die EXIF-Daten zu entfernen.So wird das Bild in jedem Gerät gleich dargestellt, und, sofern die EXIF-Daten nicht lügen, auch in der richtigen Orientierung.
LG,
CK
hallo christian, yepp, passt ::thumbsUP:: deine tipps sind immer wieder hervorragend! das ganze sieht in perl jetz mal auszugsweise in der testvers. so aus.
was kann ich noch zum thema fileprüfung besser/sicherer machen?
#!/usr/bin/perl
use [allerhandzeugs]
use File::Type;
use Image::Magick;
my $q = new CGI;
my $ft = File::Type->new();
my $img = Image::Magick->new();
my $ID = $q->param ("ID");
my $machwas = $q->param ("machwas");
my $fname = $q->param ("upload");
my $handle = $q->upload ("upload");
if ($machwas)
{
$fname = ~s/(?:\\|\/)([^\\\/]+)$/$1/g;
my ($a,$end) = split(/\.$+/, $fname);
$end = lc($end);
$fname = $ID.time().".".$end;
open (FILE, ">../../pics/$fname") or die "Can't create file: $!"; my $buffer;
while (read($handle,$buffer,2048)) { print FILE $buffer; } close (FILE);
my $type = $ft->mime_type("../../pics/$fname");
my $gr = -s("../../pics/$fname");
if ( ($type ne "image/jpeg") && ($type ne "image/png") && ($type ne "image/x-png") )
{ print header('text/plain'); print"L-In Error :: falsches Dateiformat $type";
unlink("../../pics/$fname"); goto end; }
$img->Read("../../pics/$fname") || die "Cannot read $fname!";
my ($wo,$ho) = $img->Get('width','height');
my $max = 600;
my $wn = $wo;
my $hn = $ho;
my $ratio = $wo/$ho;
if ( ($wo > $max) || ($ho > $max) ) {
if ($ratio > 1) { $wn = $max; $hn = int($max / $ratio); } else { $wn = int($max * $ratio);
$hn = $max; } $img->Sample("$wn x $hn"); }
my $text="© by IchBins";
$img->Strip;
$img->AutoOrient;
$img->Annotate(text=>$text,font=>'courier',pen=>'black',undercolor=>'#FFFFFFBB',
pointsize=>30,gravity=>'South',geometry=>'+20 +20');
$img->Write("../../pics/$fname") || die "Cannot write $fname!";
}