Imagick::setOption
(PECL imagick 2, PECL imagick 3)
Imagick::setOption — オプションを設定する
パラメータ
key
-
value
-
戻り値
成功した場合に true
を返します。
例
例1 Attempt to reach '$extent' sizeImagick::setOption()
<?php
function renderJPG($extent) {
$imagePath = $this->control->getImagePath();
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('jpg');
$imagick->setOption('jpeg:extent', $extent);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>
例2 Imagick::setOption()
<?php
function renderPNG($imagePath, $format) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('png');
$imagick->setOption('png:format', $format);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
}
//Save as 64bit PNG.
renderPNG($imagePath, 'png64');
?>
例3 Imagick::setOption()
<?php
function renderCustomBitDepthPNG() {
$imagePath = $this->control->getImagePath();
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageFormat('png');
$imagick->setOption('png:bit-depth', '16');
$imagick->setOption('png:color-type', 6);
header("Content-Type: image/png");
$crash = true;
if ($crash) {
echo $imagick->getImageBlob();
}
else {
$tempFilename = tempnam('./', 'imagick');
$imagick->writeimage(realpath($tempFilename));
echo file_get_contents($tempFilename);
}
}
?>
+add a note
User Contributed Notes 4 notes
kicha at kreker dot org ¶
9 years ago
List of options (with key => value) on official imagemagick site:
http://www.imagemagick.org/script/command-line-options.php#define
alexandre at gaigalas dot net ¶
13 years ago
If you want to extract a preview from a PDF file using the CropBox instead of the whole document, setOption() is the right method:
<?php
$handler = new Imagick();
$handler->setOption('pdf:use-cropbox', 'true');
$handler->readImage($imageFileName);
$handler->thumbnailImage(200, 200, true);
$handler->setImageFormat('jpeg');
$handler->writeImage($destThumbFileName);
?>
It is the equivalent to the -define pdf:use-cropbox=true for the convert command line tool. pdf:use-trimbox is also available.
Note that on my environment the setOption only worked when i called it before the readImage method, which means that you can't pass the filename to the Imagick constructor directly.
SkepticaLee ¶
4 years ago
Actually setImageArtifact () can be used if setOption () fails, e.g.
$im->setImageartifact ("distort:viewport", "960x540+0-151");
Or maybe setOption () is deprecated.
dodginess at yahoo dot com ¶
8 months ago
It does not appear to be possible to disable anti-aliasing using the setOption() method as might be expected, and calling the setOption() method like this does not do anything:
$imagick->setOption('antialias', FALSE);
As discussed at https://github.com/Imagick/imagick/issues/83 the correct way to do this appears to be to use the setAntiAlias() method, which is not currently documented in the PHP manual. As an example, to disable anti-aliasing for an image you can do this:
$imagick->setAntiAlias(FALSE);