Schrift
[thread]10023[/thread]

(PHP) Warum kein Output bei imagecopyresampled? (Seite 2)



<< |< 1 2 >| >> 18 Einträge, 2 Seiten
GwenDragon
 2007-08-12 15:13
#97495 #97495
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Coden ohne richtige Doku? Dazu sag ich lieber nix.
Schon schlimm, wenn man sowas nutzen muss. Mein Mitgefühl allen, die mit völlig mangelhafter Doku arbeiten müssen.
GwenDragon
 2007-08-11 15:33
#97960 #97960
User since
2005-01-17
14848 Artikel
Admin1
[Homepage]
user image
Ganz einfach, ganz oben, du rufst Funktionen auf und prüfst nicht ihre Rückgabewerte.

Lässt du dir alle Fehler etwa von PHP selbst auf der Website ausgeben?
Pida
 2007-08-11 17:23
#97962 #97962
User since
2006-06-09
52 Artikel
BenutzerIn
[default_avatar]
Ja, die Fehlermeldungen erscheinen jetzt auf der Website selbst. Ganz oben gab es schlicht keine: Ich hatte fälschlicherweise angenommen, eine nicht vorhandene Datei o.ä. würde automatisch aufmerksam gemacht. Das war aber nicht der Fall, so dass ich an einigen Stellen 'die()' eingebaut und so jetzt festgestellt habe, dass ohne URL schon beim Einlesen von $src_file Schluss ist; mit URL komme ich dagegen bis zu 'getimagesize'.

Gruß, Pida
nepos
 2007-08-12 11:43
#97989 #97989
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Merke: immer Fehler von irgendwelchen Funktionen abfangen. Das macht man überall, auch in PHP so.
Gast Gast
 2007-08-12 11:53
#97990 #97990
Danke für den Hinweis, aber kann denn auch jemand sagen, worin der Fehler in der letzten Zeile besteht?

Gruß, Pida
nepos
 2007-08-12 14:26
#97996 #97996
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Leider nein, denn die tolle PHP-Doku schweigt sich darüber aus, was da an Fehler vorkommen kann.
Da steht ja nicht mal, was die Funktion im Fehlerfall zurückliefert.
nepos
 2007-08-12 15:19
#98002 #98002
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
http://de2.php.net/manual/de/function.imagecreatef...

Mal groß-, mal kleingeschrieben und als Fehler kriegst du nur einen leeren String zurück.
Das Beispiel zum besseren Debuggen finde ich auch heiß. Um ne saubere Debug-Meldung zu bekommen, bauen wir uns mal fix ein JPG-File, wenn beim Erzeugen eines solchen was schiefgelaufen ist...
Pida
 2007-08-12 16:42
#98003 #98003
User since
2006-06-09
52 Artikel
BenutzerIn
[default_avatar]
So, hier nun die Lösung des Problems.

Gruß, Pida

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Max. Hoehe und Breite
$width = 200;
$height = 200;

// Quelle angeben
$src_file = imagecreatefromjpeg("http://***/images/test1.jpg") or die ("no such pic"); // hier darf als Pfad nur eine URL stehen

// Neue Masse ermitteln
$size_orig = getimagesize("http://***/images/test1.jpg") or die ("no size information"); // getimagesize($src_file) funktioniert nicht


$width_orig = $size_orig[0] or die ("size");
$height_orig = $size_orig[1] or die ("size");
$ratio_orig = $width_orig/$height_orig or die ("ratio");

if (($width_orig/$height_orig) > $ratio_orig) {
$width = $height_orig*$ratio_orig;
} else {
$height = $width_orig/$ratio_orig;
}

// Neues Bild erstellen
$dest_file = imagecreatetruecolor($width, $height) or die ("no new pic");

// Neues Bild füllen
imagecopyresampled($dest_file, $src_file, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig) or die ("icr");
imageinterlace($dest_file, 1) or die ("interlace"); // Hier muss ein zweites Argument übergeben werden:
// 1 = progressive Darstellung ein, 0 = progressive Darstellung aus

// Output
$dest_name = "images/test.jpg";
imagejpeg($dest_file, $dest_name, 80) or die ("output"); // hier darf an Stelle von $dest_name wohl keinerlei Pfad stehen
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-08-10 13:24.