[PHP] Warum wird das Bild nicht gepspeichert

04/06/2012 00:07 YowDaw#1
Abend.
Ich bin am verzweifeln, irgendwas simmt da nicht.
Alle Dateinen haben CHMOD 777 Rechte.

PHP Code:
<?php

$bilder 
= array(
  
'bild1.png',
  
'bild2.png'
);

$picture imagecreatefrompng($bilder[array_rand($bilder)]); // open image
imagejpeg ($picture"images/valentine_bg_img.jpg")

?>
Greez - Quick
04/06/2012 11:32 .Acu³#2
Wenn du das Bild als png erstellst (imagecreatefrompng) und anschließend als JPG (imagejpeg) speichern willst, gibt das schonmal nen Fehler.

Ansonsten musst noch nen Header mitsenden, bei PNG (da deine urspungsbilder ja png sind) wäre das dann:

PHP Code:
header('Content-Type: image/png'); 
Also sollte es wie folgt aussehen:
PHP Code:
<?php
header
('Content-Type: image/png');

$bilder = array(
  
'bild1.png',
  
'bild2.png'
);

$picture imagecreatefrompng($bilder[array_rand($bilder)]); // open image
imagepng($picture"images/valentine_bg_img.png")

?>
LG
04/06/2012 13:33 PseudoPsycho#3
Quote:
Originally Posted by ibuprofenacu View Post
Wenn du das Bild als png erstellst (imagecreatefrompng) und anschließend als JPG (imagejpeg) speichern willst, gibt das schonmal nen Fehler.
Tut er doch garnicht!!!
Er erstellt aus einem PNG eine PHP-Image-Ressource, die er dann als JPG speichert. Sprich: Er konvertiert das Bild.

PHP Code:
imagejpeg ($picture"images/valentine_bg_img.jpg"
<- Hier fehlt schonmal das ; (Semikolon) am Ende der Zeile.

PHP Code:
$picture imagecreatefrompng($bilder[array_rand($bilder)]); 
image_rand() kann auch mehrere Eintragskeys zurückgeben und dann funktioniert das Ganze nicht. Versuche lieber:
PHP Code:
$int=round(rand(01));
imagecreatefrompng($bilder[$int]); 
Ansonsten kannst du noch die Fehlermeldungen aktivieren:
PHP Code:
error_reporting(E_ALL);
ini_set('display_errors'1); 
04/06/2012 14:12 .Acu³#4
Quote:
Originally Posted by PseudoPsycho View Post
Tut er doch garnicht!!!
Er erstellt aus einem PNG eine PHP-Image-Ressource, die er dann als JPG speichert. Sprich: Er konvertiert das Bild.
Da muss ich dir recht geben, trotzdem führt das meiner Erfahrung zu Problemen bzw zu einem Fehler.