Imagefunktionen funktionieren nicht immer

Hallo

Ich versuch viele Bilder zum Thumbnail zu verkleinern.
Bei vielen Bildern funktioniert das auch, nur bei einigen nicht!
Passiert irgendwie nach Luftdruck

Hier mal der Quelcode:

// header
header("Content-type: image/jpeg");
// Bild wird geladen
$im3 = imagecreatefromjpeg($imgname);
// Größe des Orginalbildes
$size = getimagesize($imgname);
// skalierte Breite wird ermittelt
$width = round(($height\*$size[0])/$size[1]);
// Zwischenbild mit der skalierten Größe wird erstellt
$im2 = imagecreate($width, $height);
// Orginalbild wird in das Zwischenbild reinskaliert
imagecopyresized($im2, $im3, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
// Endbild wird erstellt
$im = imagecreate($width+2, $height+2);
// Hintergrund für den schwarzen Rahmen ums Bild im Endbild
$black = imagecolorallocate($im, 0, 0, 0);
imagerectangle($im, 0, 0, $width+2, $height+2, $black);
// Zwischenbild wird in das Endbild kopiert
imagecopy($im, $im2, 1, 1, 0, 0, $width, $height);
// Endbild wird ausgegeben
imagejpeg($im);
imagedestroy($im);

in $imgname steht der Pfad und der Dateiname
in $height die Höhe die das Bild als Thumb haben soll
die Breite wird proportional zur Höhe ermittelt

das ganze klappt bei 95% der Bilder, aber für einige wenige wird bloß ein 102x2 px schwarzes Feld (für $height=100) zurückgegeben

schon mal Danke im vorraus

MfG Ghost

Hier noch 2 Bsp

beim ersten wird das kleine bild nicht angezeigt??!!!?!
aber es gibt ein original bild
http://www.tu-chemnitz.de/projekt/MGIII2/ws/detail.p…

beim zweiten wird auch das kleine bild angezeigt, wie erwartet
http://www.tu-chemnitz.de/projekt/MGIII2/ws/detail.p…

der quelltext der img.php ist hier nochmal verlinkt:
http://www.tu-chemnitz.de/projekt/MGIII2/ws/img.php.txt

hoffe das hilft jmd weiter :smile:

MfG Ghost

der scheint das bild nicht zu finden.

mach mal hinter dem $imgname = $path.$id.".jpg"; nen echo $imgname;
und prüfe ob der pfad stimmt.

gruß
Phillip

hab ich geprüft: der pfad wird korrekt erzeugt
das bild ist auch an dem ort

aber danke :smile:

weiter gehts :smile:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Ich versuch viele Bilder zum Thumbnail zu verkleinern.
Bei vielen Bildern funktioniert das auch, nur bei einigen
nicht!

Passiert irgendwie nach Luftdruck

Hier mal der Quelcode:

// header
header(„Content-type: image/jpeg“);

imagejpeg($im);
imagedestroy($im);

wenn du die zeile header(…) vor die zeile imagejpeg(…) verschiebst und die url direkt im browser aufrufst, bekommst du dann eine fehlermeldung vom php?

sind die berechtigungen der bilder vielleicht anderes als bei dennen die functionieren ?

Hallo,

Hallo

Ich versuch viele Bilder zum Thumbnail zu verkleinern.
Bei vielen Bildern funktioniert das auch, nur bei einigen
nicht!

PHP zu alt ? getimagesize schlägt fehl, und liefert 0 als Breite.
Evtl. sind die 5% „falschen“ Bilder etwas anders aufgebaut…

Versuche mal statt:

// Größe des Orginalbildes
$size = getimagesize($imgname);

folgendes:

$size[0] = imagesx($im3);
$size[1] = imagesy($im3);

// skalierte Breite wird ermittelt
$width = round(($height*$size[0])/$size[1]);
// Zwischenbild mit der skalierten Größe wird erstellt
$im2 = imagecreate($width, $height);

Bessere Qualität (sofern GD2 installiert): imagecreatetruecolor
Warum erzeugst du das eigentlich nicht gleich mit +2 für den Rand und passt die Position beim imagecopy… an ? Wäre schneller, als noch ein Zwischenbild zu erzeugen.

// Orginalbild wird in das Zwischenbild reinskaliert
imagecopyresized($im2, $im3, 0, 0, 0, 0, $width, $height,
$size[0], $size[1]);

Besser: ImageCopyResampled

Alexander

Hallo

hab das alles mal uasprobiert und nichts ging :frowning:

hab aber was rausgefunden
im bsp id=153 (http://www.tu-chemnitz.de/projekt/MGIII2/ws/detail.p…)
es gibt kein bild mit der zugehörigen id!!!
das große bild was angezeigt wird ist das mit der id 513 (rechtsklick und grafik anzeigen)
aber auch im quelltext der detail.php?id=153 steht an der stelle die 153
irgendwie werden dann beim anzeigen des orginalbildes die zahlen vertauscht

wie kann das denn sein???

bin gespannt auf eure antworten :smile:

MfG Ghost