2012-12-22 13 views
5

Ciao ho un piccolo problema con l'immagine che mostra dopo averlo fatto oggetto. Sto ancora imparando a usare le immagini degli oggetti. Così qui è il mio codice:imagecreatefromjpeg non funziona

$what = getimagesize($file); 
switch(strtolower($what['mime'])){ 
    case 'image/png' : $src_id = imagecreatefrompng($file); imagesavealpha($src_id,true) ; break; 
    case 'image/jpeg': $src_id = imagecreatefromjpeg($file); break; 
    case 'image/gif' : $old_id = imagecreatefromgif($file); $src_id = imagecreatetruecolor($what[0],$what[1]); imagecopy($src_id,$old_id,0,0,0,0,$what[0],$what[1]); break; 
    default: die(); 
} 
header('Content-Type: image/jpeg'); 
imagejpeg($scr_id); 
imagedestroy($scr_id); 
die(); 

Il browser emette un'immagine in bianco con il testo "Immagine". Su $ file fornisco l'URL del file. Qualche idea?

+0

Avete controllato che $ src_id non sia falso? – Codler

risposta

9

Questo test correttamente per me.

<?php // RAY_temp_andrey.php 
error_reporting(E_ALL); 

$file = 'http://laprbass.com/RAY_EE_images/headshot.png'; 
$file = 'http://laprbass.com/RAY_EE_images/headshot.jpg'; 
$file = 'http://laprbass.com/RAY_EE_images/headshot.gif'; 

$what = getimagesize($file); 

switch(strtolower($what['mime'])) 
{ 
    case 'image/png': 
     $img = imagecreatefrompng($file); 
     break; 
    case 'image/jpeg': 
     $img = imagecreatefromjpeg($file); 
     break; 
    case 'image/gif': 
     $img = imagecreatefromgif($file); 
     break; 
    default: die(); 
} 
$new = imagecreatetruecolor($what[0],$what[1]); 
imagecopy($new,$img,0,0,0,0,$what[0],$what[1]); 

header('Content-Type: image/jpeg'); 
imagejpeg($new); 
imagedestroy($new); 
+0

Grazie per il test, apprezzo molto il tuo aiuto. Può essere da qualche parte nel codice in cui utilizzo questa funzione - posso dare un file temporaneo o devo salvarlo (Questa è la mia funzione di ridimensionamento)? $ Img = Immagini :: DoImage ($ _FILES [ "Immagine"] [ "tmp_name"], 200.300); – Andrey

+2

È necessario caricare prima i file e salvarli, quindi eseguire qualsiasi ridimensionamento o riformattazione. –