PHP Conference Nagoya 2025

Imagick::newImage

(PECL imagick 2, PECL imagick 3)

Imagick::newImageCria uma nova imagem

Descrição

public Imagick::newImage(
    int $cols,
    int $rows,
    mixed $background,
    string $format = ?
): bool

Cria uma nova imagem e associa o valor ImagickPixel como cor de fundo.

Parâmetros

cols

Colunas na nova imagem.

rows

Linhas na nova imagem.

background

A cor de fundo usada para esta imagem.

format

Formato de imagem. Este parâmetro foi adicionado no Imagick versão 2.0.1.

Valor Retornado

Retorna true em caso de sucesso.

Erros/Exceções

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

Registro de Alterações

Versão Descrição
PECL imagick 2.1.0 Agora permite uma string representando a cor como terceiro parâmetro. As versões anteriores permitiam apenas um objeto ImagickPixel.

Exemplos

Exemplo #1 Usando Imagick::newImage()

Cria uma nova imagem e mostra-a no navegador.

<?php

$image
= new Imagick();
$image->newImage(100, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

header('Content-type: image/png');
echo
$image;

?>

adicione uma nota

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

up
42
christian dot reinecke at web dot de
15 years ago
The color value (3rd argument) for transparency is "none".
up
5
jfalner1 at gmail dot com
9 years ago
As it isn't obvious, the cols and rows arguments correspond to the width and height of the new image, expressed in pixels. Example #1 would generate a 100 pixel by 100 pixel image.
up
1
Eduard Sukharev
8 years ago
It's not obvious and may be related only to some specific versions of ImageMagick (tested only for 6.7.7 and 6.8.9), but $cols and $rows must be a positive non-zero value.

<?php

$image
= new Imagick();
$image->newImage(0, 100, new ImagickPixel('red'));
$image->setImageFormat('png');

file_put_contents('image.png', $image);
?>

In this case imagemagick will crash without throwing any exception and you'll get something along the lines (in your apache error log or console output):

unable to acquire cache view `No such file or directory' @ fatal/cache-view.c/AcquireAuthenticCacheView/121.

This might be the case when you calculate $cols and $rows (say, based on user input and predefined target image DPI):

<?php

$image
= new Imagick();
$img->newImage($userInput->getWidth() * $defaultPpi, $userInput->getHeight() * $defaultPpi, new ImagickPixel('white'));
?>

In this case if user requested image with 0.006 width (in inches), the code would work for $defaultPpi = 300 ppi, but would crash for
$defaultPpi = 72 ppi
To Top