ConFoo 2025

Imagick::getImageBlob

(PECL imagick 2, PECL imagick 3)

Imagick::getImageBlobRetorna a sequência de imagem como um BLOB

Descrição

public Imagick::getImageBlob(): string

Implementa formatos de imagem direto para a memória. Retorna a sequência de imagem como uma string. O formato da imagem determina o formato do BLOB retornado (GIF, JPEG, PNG, etc.). Para retornar um formato de imagem diferente, use Imagick::setImageFormat().

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retorna uma string contendo a imagem.

Erros/Exceções

Lança uma exceção ImagickException em caso de erro.

adicione uma nota

Notas Enviadas por Usuários (em inglês) 4 notes

up
7
Vee W
8 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
jim at jimohalloran dot com
3 years ago
Further to Trevor's note above about getImageBlob potentially returning an empty string for large images.

This seems image format dependent. I have a large (12046x8363) image which is returned ok. But if I call setImageFormat('pdf') and then call getImageBlob() again. Example:

<?php
// Image Manipulation here.
$pngData = $imagick->getImageBlob(); // Returns a large PNG.
$imagick->setImageFormat('pdf');
$pdfData = $imagick->getImageBlob(); // Returns empty string immediately
?>
up
1
Trevor
13 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.)
up
1
anonymous at internet dot domain
7 months ago
Function returns NULL without any error if ImageMagick policy.xml blocks handling the file format, i.e. PDF.
For PDF output edit /etc/ImageMagick-6/policy.xml and remove the line which disables rights for PDF.
If you use other functions, e.g. readImage() for PDF, ImageMagick nags about it and outputs the error message but this function fails silently.
To Top