Problem:
Ein Bild soll vor dem Upload (FTP. keine DB) verkleinert werden... Die Minimierung an sich funktioniert, jedoch leidet die Farbgenauigkeit darunter sehr.
Im folgenden Post werde ich Ein Beispiel und den dazu passenden Code mal veröffentlichen.
Originalbild:
Wenn ich jetzt jedoch das Thumbnail erzeuge, bleibt die Bildqualität nicht erhalten, sondern wird verfälscht:
Das Bild ist zwar kleiner, die Qualität jedoch nicht akzeptabel!
Folgender Code zeigt die gesamte Datei (ein kopiert- und leicht angepasstes Script aus dem Web). Eine genauere Ansicht der "Problemzone" befindet sich unterhalb dieses Beispiels:
Wie gesagt, es handelt sich um ein geklautes Script. Warum auch das Rad neu erfinden? ;-)
Brechen wir es genauer auseinander:
Hier mus mann meines Erachtens irgendwie mit "imagecreatetruecolor" die Qualität (nicht die createimage(x,x,KOMPREMIEREUNG) ) ändern können.
Genau bin ich da jedoch aus zeitlichen- und wetterbedingten Gründen nicht so genau hintergestiegen.
Ich würde mich sehr über konstruktive Hinweise/Vorschläge/Anregungen/Lösungen freuen und hoffe, dass wir das zusammen hinbekommen
Liebe Grüße aus dem RIGO'nischen Gütersloh
Claus
Ein Bild soll vor dem Upload (FTP. keine DB) verkleinert werden... Die Minimierung an sich funktioniert, jedoch leidet die Farbgenauigkeit darunter sehr.
Im folgenden Post werde ich Ein Beispiel und den dazu passenden Code mal veröffentlichen.
Originalbild:
Wenn ich jetzt jedoch das Thumbnail erzeuge, bleibt die Bildqualität nicht erhalten, sondern wird verfälscht:
Das Bild ist zwar kleiner, die Qualität jedoch nicht akzeptabel!
Folgender Code zeigt die gesamte Datei (ein kopiert- und leicht angepasstes Script aus dem Web). Eine genauere Ansicht der "Problemzone" befindet sich unterhalb dieses Beispiels:
PHP:
<?
### Zielverzeichnisse, ohne abschliessenden Slash #
$picdir = "pics"; // Originalgrafiken #
$thumbdir = "thumbs"; // Vorschaugrafiken #
$height = "100"; #
$zusatz = "_klein"; #
$newext = "jpg"; #
$array = explode (".",$file_name);
$filename = $array[0];
$extension = strtolower($array[1]);
$smallimage = "$thumbdir"."/"."$filename"."$zusatz"."."."$newext";
$original = "$picdir"."/"."$filename"."."."$newext";
@copy($file, "$picdir/$filename"."."."$newext");
echo "<font class='scriptsuccessfont'> Die Datei wurde auf den Server übertragen !</font>";
if(@copy($file,"$thumbdir/$filename$zusatz"."."."$newext"));
if(file_exists($smallimage))
{
$image = imagecreatefromjpeg("$smallimage");
$ywert=imagesy($image);
$xwert=imagesx($image);
if($xwert > $ywert)
{
$verh = $xwert / $ywert;
$newheight = $height;
$newwidth = $newheight * $verh;
}
else
{
$verh = $ywert / $xwert;
$newheight = $height;
$newwidth = $newheight / $verh;
}
$destimage = imagecreate($newwidth,$newheight);
imagecopyresized($destimage, $image, 0, 0, 0, 0, $newwidth, $newheight,$xwert,$ywert);
imagejpeg($destimage,$smallimage);
}
?>
<form method="POST" action="<?php echo $PHP_SELF ?>" enctype="multipart/form-data">
<input type=file name=file size=25><br>
<br>
<button name="upload" type="submit">Upload</button>
</form><div align="center">
</div>
<hr class="script">
<br>
<?
if(isset($original))
{
echo "<font class='scriptsuccessfont'>Vorschau</font><br><br>
<font class='scriptmainfont'>Thumbnail » <i>"."$smallimage"."</i><br><img src=\""."$smallimage"."\"><br><br>
Original » <i>"."$original"."</i></font><br><img src=\"".$original."\">";
}
if(!isset($DEFAULTS))
echo "</body></html>";
?>
Wie gesagt, es handelt sich um ein geklautes Script. Warum auch das Rad neu erfinden? ;-)
Brechen wir es genauer auseinander:
PHP:
destimage = imagecreate($newwidth,$newheight);
imagecopyresized($destimage, $image, 0, 0, 0, 0, $newwidth, $newheight,$xwert,$ywert);
imagejpeg($destimage,$smallimage);
Hier mus mann meines Erachtens irgendwie mit "imagecreatetruecolor" die Qualität (nicht die createimage(x,x,KOMPREMIEREUNG) ) ändern können.
Genau bin ich da jedoch aus zeitlichen- und wetterbedingten Gründen nicht so genau hintergestiegen.
Ich würde mich sehr über konstruktive Hinweise/Vorschläge/Anregungen/Lösungen freuen und hoffe, dass wir das zusammen hinbekommen
Liebe Grüße aus dem RIGO'nischen Gütersloh
Claus
Zuletzt bearbeitet: