PHP 8.1.0 Beta 1 available for testing

Imagick::getImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBlobGörüntü dizisini ikil dizge olarak döndürür

Açıklama

public Imagick::getImageBlob(): string

Görüntüyü bellekteki biçemiyle ikil dizge olarak döndürür. Görüntünün biçemi dönen dizgenin dosya biçemine bağlıdır (GIF, JPEG, PNG, vb.). Görüntü biçemini değiştirmek için Imagick::setImageFormat() yöntemini kullanın.

Değiştirgeler

Bu işlevin değiştirgesi yoktur.

Dönen Değerler

Görüntüyü içeren bir ikil dizge döner.

Hatalar/İstisnalar

Hata durumunda bir ImagickException istisnası oluşur.

add a note add a note

User Contributed Notes 2 notes

up
7
Vee W
5 years ago
For who want to show "animated" gif. This getImageBlob() will showing only one frame of image.
Use getImagesBlob() instead.

Example:

<?php
$Imagick
= new \Imagick($real_source_image_path_animated_gif);
header("Content-Type: image/gif");
echo
$Imagick->getImagesBlob();
?>
up
2
Trevor
9 years ago
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.)
To Top