Imagick
在线手册:中文 英文
PHP手册

Imagick::getImageBlob

(PECL imagick 2.0.0)

Imagick::getImageBlobReturns the image sequence as a blob

说明

string Imagick::getImageBlob ( void )

Implements direct to memory image formats. It returns the image sequence as a string. The format of the image determines the format of the returned blob (GIF, JPEG, PNG, etc.). To return a different image format, use Imagick::setImageFormat().

返回值

Returns a string containing the image.

错误/异常

错误时抛出 ImagickException .


Imagick
在线手册:中文 英文
PHP手册
PHP手册 - N: Returns the image sequence as a blob

用户评论:

Trevor (01-Dec-2011 11:41)

It seems that this method can return a zero-length string if faced with large-ish data.  No exceptions are thrown.

<?php
  $image
= new Imagick();
  if (!
$image->newImage(1000,1,'white')) throw new Exception();
  if (!
$image->scaleImage(0,200)) throw new Exception();
  print
"Image size: {$image->getImageWidth()},{$image->getImageHeight()}\n";
  if (!
$image->setImageFormat("jpeg")) throw new Exception();
 
$a = $image->getImageBlob();
  print
"Rendered to ".strlen($a)." bytes\n";
?>

Restrict your output image size, or ensure that the blob you get back isn't empty.  (Note that IM seems to be doing the work, it delays for some time.  But there's no indication of any error anywhere.)