imagecopyresampled erzeugt nur schwarz-weiß thumb

BitMan

Erfahrenes Mitglied
Hallo Leute,

ich hab für ein dynamisches Bilderalbum vfor das Bilder nach dem Upload direkt als Thumbnailcopy angelegt werden.

Code:
function resize($bild, $nbild, $breite)
  {		
      $size = getimagesize($bild);
      $b		=	$size[0];
      $h		=	$size[1];
	
      $faktor = round(100/$b*$breite);
		
      $nb=round($b/100*$faktor);
      $nh=round($h/100*$faktor);
		
      $altesBild=ImageCreateFromJPEG("$bild"); 
      $neuesBild=imagecreate($nb,$nh); 
      imagecopyresampled($neuesBild,$altesBild,0,0,0,0,$nb,
      $nh,$b,$h); 
      imagejpeg($neuesBild, $nbild); 
}
	
	
resize("test.jpg", "ytest.jpg", 250);
echo "<img src='ytest.jpg'>";

Das funktioniert auch. Die Thumbs sind zwar schwarz-weis, was aber bei einem thumbnail gar nicht mal so schlecht ist.

Aber trotzdem würde ich gerne wissen warum die Farben verloren geht und die Bilder als thumbs in der qualität schlechter wirken.

cu s00n
BitMan
 
php.net hat gesagt.:
Note: There is a problem due to palette image limitations (255+1 colors). Resampling or filtering an image commonly needs more colors than 255, a kind of approximation is used to calculate the new resampled pixel and its color. With a palette image we try to allocate a new color, if that failed, we choose the closest (in theory) computed color. This is not always the closest visual color. That may produce a weird result, like blank (or visually blank) images. To skip this problem, please use a truecolor image as a destination image, such as one created by [phpf]imagecreatetruecolor[/phpf].

Einerseits das hier...

Andererseits warum willst du das Bild überhaupt "resamplen"?
Da du nur die Größe veränderst, würde sich doch [phpf]imagecopyresized[/phpf] viel eher anbieten.
 
Hi,

in doppelten Anführungszeichen wird aber auf Variablen geparst. Sonst würd's ja auch einen Fehler geben und kein verkleinertes Bild. Die Anführungszeichen sind aber überflüssig.

LG
 
Zurück