Bildgröße ändern -> Farben weg

zinion

Erfahrenes Mitglied
Und schon wieder ich!

Also ich versuche die größe eines jpgs zu ändern. Das klappt auch super. Nur sind danach die ganzen Farben weg :confused:

Hier mal meine Funktion:

PHP:
<?php
function strGetResizeImgName( $image, $newWidth, $newHeight)
{
 $image = "../pics/".$image;

 $path_parts = pathinfo($image);

 $ziel = $path_parts["basename"];

// var_dump($regs);



 switch($path_parts["extension"])
 {
 	case "gif": $srcImage = ImageCreateFromGIF( $image ); break;
 	case "GIF": $srcImage = ImageCreateFromGIF( $image ); break;
	case "jpg": $srcImage = ImageCreateFromJPEG( $image ); break;
 	case "JPG": $srcImage = ImageCreateFromJPEG( $image ); break;
 	default: $srcImage = ImageCreateFromPNG( $image ); break;}



 // Bildgrösse
 $srcWidth = ImageSX( $srcImage );
 $srcHeight = ImageSY( $srcImage );

 $ratioWidth = $srcWidth/$newWidth;
 $ratioHeight = $srcHeight/$newHeight;

 if( $ratioWidth < $ratioHeight){

 $destWidth = $srcWidth/$ratioHeight;
 $destHeight = $newHeight;
 }else{

 $destWidth = $newWidth;
 $destHeight = $srcHeight/$ratioWidth;
 }


 // Neues Bild Erzeugen
 $destImage = imagecreate( $destWidth, $destHeight);

 // Source srcImage in Ziel destImage kopieren
 ImageCopyResized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight );


 // Als .jpg schpeichern
 imagejpg( $destImage, "../pics/" . $ziel);


 // Speicher freigeben
 ImageDestroy( $srcImage );
 ImageDestroy( $destImage );

 return 0;

 }
?>
 
*hochschieb

Argh, hat da wirklich keiner eine Idee? Das kann doch net sein, daß der einfach die Farben verschluckt :(
 
Jupidu dankeschön, da hat der Nochmalpost sich gelohnt, so gehts :D

Für alle dies interessiert jetzt hier nochmal meine funktionierende Funktion, nur für jpg-Files nutzbar und ohne die ganzen unnützen Zeilen:

PHP:
<?php
function imageResize( $image, $newWidth, $newHeight)
{
	$image = "../pics/".$image;

	$path_parts = pathinfo($image);

	$ziel = $path_parts["basename"];

	$srcImage = ImageCreateFromJPEG( $image );

	// Bildgrösse berechnen
	$srcWidth = ImageSX( $srcImage );
	$srcHeight = ImageSY( $srcImage );

	$ratioWidth = $srcWidth/$newWidth;
	$ratioHeight = $srcHeight/$newHeight;

	if( $ratioWidth < $ratioHeight){

	$destWidth = $srcWidth/$ratioHeight;
	$destHeight = $newHeight;
	}
        else
        {
	$destWidth = $newWidth;
	$destHeight = $srcHeight/$ratioWidth;
	}


	// Neues Bild Erzeugen
	$destImage = imagecreatetruecolor( $destWidth, $destHeight);

	// Source srcImage in Ziel destImage kopieren
	ImageCopyResized( $destImage, $srcImage, 0, 0, 0, 0, $destWidth, $destHeight, $srcWidth, $srcHeight );


	// Als .jpg schpeichern
	imageJPEG( $destImage, "../pics/" . $ziel);


	// Speicher freigeben
	ImageDestroy( $srcImage );
	ImageDestroy( $destImage );

	return 0;
}
?>
 
Zurück