Bilder mit GD2 resized was brauche ich?

ShishaLiVe

Mitglied
So da ich noch nie mit GD2 gearbeitet habe brauche ich eure Hilfe, was benötige ich alles um Bilder zu verkleinern also resized?


Danke euch schon mal im voraus!
 
Also bin schon weiter ^^ aber habe ein Problem...


PHP:
$testt = "./pic_tmp/hmpf^^.jpg";
$imageMaxW = 200;
$imageMaxH= 220;
$image = imagecreatefromjpeg($testt);
$bild = getimagesize($testt);
if(($bild[0] > $imageMaxW) || ($bild[1] > $imageMaxH)) {
if($bild[0]>$bild[1]) {
// querformat
$faktor = $bild[0]/$imageMaxW;
} else {
// hochformat oder quadrat
$faktor = $bild[1]/$imageMaxH;
} }
$newWidth = floor($bild[0]/$faktor);
$newHeight= floor($bild[1]/$faktor);
$newImg = imagecreatetruecolor($newWidth,$newHeight);
imagecopyresized($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $image, $image); // <<< bis hier hin geht alles ohne Fehler
imagejpeg($newImg, "", 100); // Soweit ich das hinzufüge kommt folgene fehler meldung

echo "newHeight: $newHeight</br>";
echo "newWidth: $newWidth</br>";


Fehler Meldung




Datei erfolgreich hochgeladen!
Name: hmpf^^.jpg
Größe: 125456 Byte
MIME-Type: image/jpeg
Link: hmpf^^.jpgÿØÿàJFIFÿþŸJ_!ýWó?áVî/û«ü…:€3ÞÜy^ÝÏ ö¦ùê¿™ÿ ¸ÿxþÈSh*U*ì§éÓ? 2¦¸ÿ\ÿðýjòÚ…þñü??¦Ôøƒò£Ð~B€ ¢§Àô?£Ð~B€ÃúÔ”˜ –€$?¿áýjJŽ>ÿ‡õ©(éÔý?¨©j«’Ž{zúT{ßûÍÿ}ñ ÔU¾?øѽÿ¼ß÷Ñÿ½Eg³¾Óó·ýô}~µ™'üôûé¿Æ€5¡ú
åPU’LÞ?CüMéõ¨<É?ç£ÿßMþ4«Eey’ÏGÿ¾›üh –Š( Š( /÷Ûýæþf›E ýãø!M¢Š(¢Š(¢Š(¢Š’>ÿ‡õ©(¢€ý×úŠŠ(¢Š(¯÷OáüÅCE

usw....


Danke für eure Hilfe
 
Hallo!

Der 2. Parameter von imagejpeg() ist leer.
Somit wird das Bild nicht gespeichert, sondern direkt im Browser ausgegeben.
Wenn das Bild direkt im Browser ausgegeben wird, dann muss auch (zuerst) der MIME-Typ per header() an den Browser gesendet werden.

Ausserdem bin ich der Meinung dass beim direkten ausgeben nichts anderes mit ausgegeben werden darf --> echo().

Gruss Dr Dau
 
Hallo!
Du meinst wohl schwarzes Bild. :p
Du kannst das mit dieser Funktion machen:
PHP:
<?php
/**
	* resize() - Rezises an image
	* 
	* @param Obj $image
	* @param Int $size
	* @return Obj
	*/
	function resize($image, $size)
	{		
		// get width and height of the image
		$x = imagesx($image);
		$y = imagesy($image);
		
		// define width and height of the thumbnail
		if ($x>$y)
		{
			$width = $size;
			$height = round($y / $x * $size);
		}

		else
		{
			$height = $size;
			$width = round($x / $y * $size);
		}
		
		// create empty thumbnail
		$thumb = imagecreatetruecolor($width, $height);
		
		// insert resized image into the empty thumbnail
		imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, $x, $y);		
		
		return $thumb;
	}
?>
Du musst einfach das Image-Handle an diese Funktion übergeben und eine der Beiden Seiten. Als rückgabe erhälst du das Image-Handle des verkleinerten Bildes.
MfG, Andy
 
Brauche aber ne funktion wo ich die max. höhe und die .max breite einstellen kann da ich bilder in Verschiednen größen brauche?!
 
Du hast die Höhe/Breite vom Quellbild nicht (korrekt) angegeben:
PHP:
imagecopyresized($newImg, $image, 0, 0, 0, 0, $newWidth, $newHeight, $bild[0], $bild[1]);
 
Na dann suche mal hier im Forum nach Wasserzeichen und/oder Watermark..... das Thema wurde nämlich schon öfter behandelt. ;)
 
Zurück