Bild erstellen

qsrs

Erfahrenes Mitglied
Hallo,

ich erstelle mit PHP ein Bild und speichere es auf dem Server. Das mache ich so:

PHP:
  $image = imagecreate (500,500);
  imagejpeg ($image, "pfad/datei.jpg"]);

Wenn ich jetzt die Datei mit phpThumbs anzeigen möchte, kommt ein Fehler. phpThumbs meldet: Unknown image type identified, und im Browser wird u.a. noch getimagesize() [function.getimagesize]: Read error! ausgegeben. Was mache ich falsch?
 
Also es ist tatsächlich nicht viel mehr als das:

PHP:
 if ($file_extension == "jpg") {
  $image = imagecreate (500,500);
  imagejpeg ($image, "files/".$array3[id].".".$array3[file_extension]);
  }

Die Datei wird auch erzeugt, z.B. 123.jpg. Die Arrays stehen für eine Datenbankabfrage, da der Dateiname die Datensatz-ID wird. Wie gesagt, das funktioniert auch alles. Nur das Bild ist leer, also wenn ich es herunterlade, wird nichts angezeigt. Kein weißes Bild mit den Maßen 500 x 500, und im Browser ebenfalls schon die erwähnten Fehlermeldungen.
 
Also der Pfad stimmt, aber ich sende keinen Header. Das mit dem Bild Erstellen habe ich so das erste Mal versucht, und ich weiß auch nicht, ob das so richtig ist. Was muss ich sonst noch ergänzen?
 
Hallo Sven,

das, was ich oben gepostet habe, ist tatsächlich alles, was ich an code habe. Ich erstelle das Ganze mittels Formular, dort übergebe ich aber nur die Werte. Im Prinzip habe ich auch genau Folgendes probiert, ohne zusätzlichem Code:

PHP:
   $image = imagecreate (500,500);
  imagejpeg ($image, "files/test.jpg);

Und es ist wirklich nicht mehr! Vielleicht ist das ja der Fehler. Aber es wird eine Datei erzeugt, mit dem Namen test.jpg, nur ohne Inhalt.
 
Dieser Code dort erstellt ein schwarzes JPG 500x500px, sonst nichst.

Allerdings nur, wenn es bis zu dieser Zeile kommt:
Code:
imagejpeg(......
...und in dieser Zeile kein Fehler auftaucht.(was nicht der Fall ist, sonst wäre die Datei nicht da)

Wenn du sagst, die Datei wurde erzeugt, ist aber kein jpg(lässt sich bspw. nicht mit irgendeinem Grafik-Betrachter öffnen), dann öffne sie bitte mal mit einem Editor, und poste, was du dort zu Sehen bekommst....oder hänge sie hier als Anhang ran.
 
Ich habe den Fehler nun gefunden. Ich habe ein Skript, das mehrere tausend Zeilen lang ist, das wollte ich hier nicht posten. Aber dort standen sich zwei Variablen im Weg. Ich teste jetzt mit einem einfach Skript, um das zukünftig auszuschließen. Und da habe ich noch ein kleines Problem. Ich möchte, dass das Bild nicht schwarz, sondern weiß ist. Ich habe es so versucht:
PHP:
$image = imagecreate (800,600);
$image = imagecolorallocate ($image, 255, 255 ,255);
imagejpeg ($image, "test.jpg");
Dann kommt aber die Meldung:
Warning: imagejpeg(): supplied argument is not a valid Image resource in ... on line 3. Was mache ich noch falsch?
 
Zuletzt bearbeitet:
PHP:
$image = imagecreate (800,600);
$image = imagecolorallocate ($image, 255, 255 ,255);
imagejpeg ($image, "test.jpg");

Pseudocode:
Code:
image <- "800x600 Leinwand";
image <- "Weiße Farbe";
Erstelle_Bild(image, als Test.JPG);

Ich weiß nicht wie du es schaffst bei drei Zeilen ebenfalls die Variablen umzuschmeißen, aber den Fehler siehst du hoffentlich selbst: Mit einem Eimer Farbe lässt sich nichts anfangen, nachdem man die Leinwand zerstört hat.

Leinwand = imagecreate
Pinsel = imagecolorallocate

Jetzt musst du nur noch malen: http://de.php.net/manual/de/function.imagefill.php
 
Zurück