2013-04-22 80 views
0

我想從圖像轉換爲JPG格式,必要時調整大小和輸出。ob_start,標題和閱讀問題,而圖像轉換

問題是,生成的圖像不可讀。

require('SimpleImage.php'); 

function BildInBLOB($linkadresse) 
{ 
    $maxsize = 65536; 

    ob_start(); 
    header('Content-Type: image/jpeg'); 
    $image = new SimpleImage();  
    $image->load($linkadresse); 
    $width = 150; 
    $height = 150; 
    if ($image->getWidth() > $image->getHeight()) 
    {  
    $ratio = 150/$image->getWidth(); 
    $height = $image->getheight() * $ratio; 
    } 
    else 
    { 
    $ratio = 150/$image->getHeight(); 
    $width = $image->getWidth() * $ratio; 
    }  
    $image->resize($width,$height); 

    $image->output(); 

    $data = ob_get_contents(); 
    ob_end_clean(); 

    $serialized_data = serialize($data); 

    $size = strlen($serialized_data); 

    if ($size < $maxsize) { 
     $imgData = mysql_escape_string($data); 
     return $imgData;   
    } 
    else 
    { 
    return false; 
    } 
} 
header('Content-Type: image/jpeg'); 
echo BildInBLOB('http://www.example.com/image.png'); 
die; 

如果我刪除

header('Content-Type: image/jpeg'); 

它看起來像正常的JPEG代碼,但如果我把它放在我無法打開該文件。

這是爲什麼?

+1

'$ imgData = mysql_escape_string($ data);'你爲什麼要逃避圖像數據?這會弄亂圖像。 – beerwin 2013-04-22 20:26:41

+0

謝謝,就是這樣。 – 2013-04-22 20:31:20

+0

我會將其添加爲答案 – beerwin 2013-04-22 20:32:04

回答

2

從代碼中刪除以下部分:

$imgData = mysql_escape_string($data); 

這會弄糟圖像。