Bildausschnitt aus einem Bild

macgoofy

Grünschnabel
Hi zusammen,

verzweifle gerade an einem Problem.

Und zwar versuche ich von einem gegebenem Bild "nur" einen bestimmten Ausschnitt ausgeben zu lassen - bzw. er solle nur diesen anzeigen. Ist im Endeffekt ein Thumbnail aber nur ein Ausschnitt und keine komprimierte/verkleinerte Fassung o.ä.

mein Code dazu lautet nun
Code:
 // Aufruf der Funktion:  
 randomThumbCreate("Link zum Banner", "randomPic");       

// Die Funktion erzeugt ein Bildausschnit aus einem gegebenem Bild  
function randomThumbCreate($bild,$thumb_name) {  	
  // Quelle  	
  $imgA =  imagecreatefromjpeg($bild);  	

  // Zieldatei  	
  $imgB = imagecreate(50,50);  	  	

  // lese Bild aus und erzeuge neues "Ausschnittsbild"  	
  ImageCopy($imgB, $imgA,0,0,0,0,50,50);  	  	

  // zeigeDiesesAmBildschirm  	
  imagejpeg($imgB); 
}

Die Ausgabe lautet dann wie folgt:
ÿØÿà

Wo liegt nun das Problem?

Vielleicht kann mir hier ja einer weiterhelfen.

Gruß
Macg.
 
Zuletzt bearbeitet:
GD is aber an oder? ja und mit dem header hat er recht schau mal bei php.net nach imagejpeg
 
habe das nun mit dem Header gemacht. Dabei kommt folgende Fehlermeldung:

Warning: Division by zero in [...]/new/test.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at [...]/new/test.php:30) in [...]/new/test.php on line 30
ÿØÿà


Und was genau kann ich unter GD verstehen? Wenn das Admin-Interne Rechte sind, kann ich die doch nicht ändern, oder?

Gruß
macg.

[EDIT]
Habe die Anführungszeichen im Header vergessen. Fehlermeldung ist nun weg. Jedoch Ausgabe wie zuvor auch :C
 
Zuletzt bearbeitet:
würd ja gerne selber nach dem "GD" suchen, aber leider sucht die "suche" von Tutorials.de nicht nach diesem Begriff, da es diesen immer aus der Suche ausschließt.

Vielleicht kann mir jemand das Kürzel ausschreiben, so dass ich wenigstens selbst auf Suche gehen kann!

Gruß
macg.
 
Zuletzt bearbeitet:
So habe das Problem nun selber gelöst. Hatte im HEader zwar ...
header('image/jpeg');
...angegeben, aber damit war php wohl nicht zufrieden. Habe dann beim stöbern im Forum folgenden "besseren" Header gefunden:
header("Content-type: image/jpeg");

Jetzt funktioniert mein Code. Der vollständigkeit halber setze ich den Code mal komplett hier rein:
Code:
 // Aufruf der Funktion: 
erzeugeBildausschnitt("linkDesBildes.jpg"); 

function erzeugeBildausschnitt($bildQuelle){
	// welche Breite + Hoehe soll der Ausschnitt haben
	$Ausschnitt_Breite = 100;
	$Ausschnitt_Hoehe = 100;
	
	// welcher Bereich soll dargestellt werden
	$Position_x = 0; 
	$Position_y = 0;
	
	$img1 = imagecreatefromjpeg($bildQuelle);//OriginalDatei
	$img2 = imagecreatetruecolor($Ausschnitt_Breite, $Ausschnitt_Hoehe);//Neue Datei mit Auschnitt der Originaldatei
	
	//Was soll geschehen?
	//Aus der Hauptdatei soll ein Auschnitt (x: 15px; y:15 px; Breite: 70px; Höhe: 140px)
	//in die Neue Dateu ($img2) kopiert werden.
	imagecopymerge($img2, $img1, 0, 0, $Position_x, $Position_y, $Ausschnitt_Breite, $Ausschnitt_Hoehe, 100);
	
	//Die neue Datei wird unter einem anderen Namen abgespeichert (und anschließend Speicher gelöscht)
	header("Content-type: image/jpeg");
	imagejpeg($img2);
	imagedestroy($img1);
	imagedestroy($img2);

}

So lieben Gruß
macg.
 
Zuletzt bearbeitet:
Zurück