Imagick::newImage

(PECL imagick 2.0.0)

Imagick::newImageCreates a new image

Описание

bool Imagick::newImage ( int $cols , int $rows , mixed $background [, string $format ] )

Creates a new image and associates ImagickPixel value as background color

Список параметров

cols

Columns in the new image

rows

Rows in the new image

background

The background color used for this image

format

Image format. This parameter was added in Imagick version 2.0.1.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Список изменений

Версия Описание
2.1.0 Now allows a string representing the color as the third parameter. Previous versions allow only an ImagickPixel object.

Примеры

Пример #1 Using Imagick::newImage():

Create a new image and display it.

<?php

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

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

?>

Коментарии

The color value (3rd argument) for transparency is "none".
2009-06-23 07:35:04
http://php5.kiev.ua/manual/ru/imagick.newimage.html
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.
2015-04-07 21:17:22
http://php5.kiev.ua/manual/ru/imagick.newimage.html
Автор:
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(0100, 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
2016-08-18 19:39:00
http://php5.kiev.ua/manual/ru/imagick.newimage.html

    Поддержать сайт на родительском проекте КГБ