文字

Imagick::setOption

(PECL imagick 2.0.0)

Imagick::setOptionSet an option

说明

bool Imagick::setOption ( string $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(200200true);
$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.

上一篇: 下一篇: