0

我正在尝试将图像从 url 转换为 jpg,必要时调整大小并输出。

问题是,生成的图像不可读。

 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 代码,但如果我保留它,我将无法打开文件。

这是为什么?

4

1 回答 1

2

从您的代码中删除以下部分:

$imgData = mysql_escape_string($data);

那会破坏形象。

于 2013-04-22T20:32:38.447 回答