Imagick::setOption()
(PECL imagick 2.0.0)
Set an option
说明
Imagick::setOption(string $key,string $value): bool
Associates one or more options with the wand.
参数
- $key
- $value
返回值
成功时返回TRUE
。
范例
Example #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(); } ?>
Example #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'); ?>
Example #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); } } ?>
List of options (with key => value) on official imagemagick site: http://www.imagemagick.org/script/command-line-options.php#define
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.