GDLib: Graustufen ?!

croz

Grünschnabel
Hallo zusammen,

ich habe ein kleines Problem mit einem Bilder-Upload Script, bzw. mit der erstellung von Thumbnails .. hier erstmal der Code:

PHP:
<?php

if ($action == "bilder_add"){
//überflüssiges HTML


if ($action == "bilder_add2"){

	$tempname = $_FILES['file']['tmp_name'];
	$name = $_FILES['file']['name'];
	$type = $_FILES['file']['type'];
	$o_size = $_FILES['file']['size'];


		if($o_size > "150000") {
		$err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 150 KB!";
		}




	if(empty($err)) {
	copy("$tempname", "bilder/$kategorie/$name");

		  $PicPathIn="bilder/$kategorie/";
		  $PicPathOut="bilder/thumbs/$kategorie/";

		  // Orginalbild
		  $bild=$name;

		  // Bilddaten feststellen
		  $size=getimagesize("$PicPathIn"."$bild");
		  $breite=$size[0];
		  $hoehe=$size[1];
		  $neueBreite=250;
		  $neueHoehe=intval($hoehe*$neueBreite/$breite);

		  if($size[2]==2) {
		  // JPG
		  $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
		  $neuesBild=ImageCreate($neueBreite,$neueHoehe);
		  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
		  ImageJPEG($neuesBild,"$PicPathOut"."$bild", 99); // <--- !!!
		  }

		  $Tumbnail=$PicPathOut.$bild;

		echo ("<fieldset><legend><font class=\"black\"><b> Bilder <font color=\"red\">Upload</font> </b></font></legend>\n");
		echo ("<IMG SRC=\"$Tumbnail\" WIDTH=\"$neueBreite\" HEIGHT=\"$neueHoehe\"><br><br>\n");


		

// usw ....

?>

Wie Ihre seht lade ich das bild hoch und generiere gleich im anschluss ein thumbnail per ImageJPG mit der qualität 99 ..

PHP:
if($size[2]==2) {
		  // JPG
		  $altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
		  $neuesBild=ImageCreate($neueBreite,$neueHoehe);
		  ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
		  ImageJPEG($neuesBild,"$PicPathOut"."$bild", 99); // <--- !!!

was auch alles soweit einwandfrei funktioniert .. das bild ist oben, das thumbnail erzeugt .. nur, hab ich je nach bild einfach einen grauen schleier drüber .. sieht furchbar aus für ne bildergalerie finde ich .. ihr könnt es euch hier einmal anschauen ...

link

liegt das an der GDlib Version oder am Script (was ich mir nicht vorstellen kann) ? Kennt einer von euch eine alternative zur GDlib oder eine andere methode wie ich mein bilder script so wie hier aufbauen könnte ohne graue thumbs zu erhalten ?


Danke schonmal für eure hilfe,

mfg croz
 
Zuletzt bearbeitet von einem Moderator:
Nur so ein Geistesblitz nach dem ersten Überfliegen: Ersetz diese Zeile
PHP:
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
durch folgende
PHP:
$neuesBild=ImageCreateTrueColor($neueBreite,$neueHoehe);
Vielleicht hilft's...
 
.. omg das war alles ... vielen dank, und ich hab stunden an dem scheiss rumgeschraubt .. danke vielmals :)
 
imagecreatetruecolor() benötigt GD 2.0.1 < was auf vielen Webservern noch nicht drauf ist. Ich hab etwas rumgesucht und ein workaround auf phpclasses.com für gif-images gefunden, natürlich wird das auch für alle anderen formate klappen, man muss halt nur die ausgabefunktion entsprechend anpassen:

greyscale
 
Zurück