Imagick::setOption

(PECL imagick 2, PECL imagick 3)

Imagick::setOption β€” УстанавливаСт ΠΎΠΏΡ†ΠΈΡŽ

ОписаниС

public function Imagick::setOption(string $key, string $value): bool

ΠœΠ΅Ρ‚ΠΎΠ΄ связываСт ΠΎΠΏΡ†ΠΈΠΈ с ΠΏΠ°Π»ΠΎΡ‡ΠΊΠΎΠΉ.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

key

value

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° '$extent' ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ 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();
}

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #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();
}

// БохраняСм ΠΊΠ°ΠΊ 64-Π±ΠΈΡ‚Π½ΠΎΠ΅ 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);
    }
}

?>
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 4 notes

up
7
kicha at kreker dot org ΒΆ
10 years ago
List of options (with key => value) on official imagemagick site:
http://www.imagemagick.org/script/command-line-options.php#define
up
3
alexandre at gaigalas dot net ΒΆ
15 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.
up
1
SkepticaLee ΒΆ
6 years ago
Actually setImageArtifact () can be used if setOption () fails, e.g.

$im->setImageartifact ("distort:viewport", "960x540+0-151");

Or maybe setOption () is deprecated.
up
0
dodginess at yahoo dot com ΒΆ
2 years 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);