©
本文档使用
php.cn手册 发布
(PECL imagick 2.0.0)
Imagick::setOption — Set an option
$key
, string $value
)Associates one or more options with the wand.
key
value
成功时返回 TRUE
。
Example #1 Attempt to reach '$extent' size Imagick::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 );
}
}
?>
[#1] kicha at kreker dot org [2015-09-24 14:48:49]
List of options (with key => value) on official imagemagick site:
http://www.imagemagick.org/script/command-line-options.php#define
[#2] alexandre at gaigalas dot net [2011-07-11 14:43:37]
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.