PHP Conference Nagoya 2025

Imagick::posterizeImage

(PECL imagick 2, PECL imagick 3)

Imagick::posterizeImageGörüntüdeki renkleri belli bir sayıya düşürür

Açıklama

public Imagick::posterizeImage(int $seviyeler, bool $kıpırtı): bool

Görüntüdeki renkleri belli bir sayıya düşürür.

Bağımsız Değişkenler

seviyeler

Her kanalda izin verilen renk sayısı seviyeleri. Düşük değerler daha belirgin etkiler oluşturur.

kıpırtı

Sıfırdan farklı bir tamsayı.

Dönen Değerler

Başarı durumunda true döner.

Örnekler

Örnek 1 - Imagick::posterizeImage()

<?php
function posterizeImage($imagePath, $posterizeType, $numberLevels) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->posterizeImage($numberLevels, $posterizeType);
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo
$imagick->getImageBlob();
}

posterizeImage($imagePath, \Imagick::DITHERMETHOD_RIEMERSMA, 8);

?>

add a note

User Contributed Notes 1 note

up
1
linspb at gmail dot com
7 years ago
At PHP 7.x before

$im->posterizeimage(2, FALSE);

do

$im->setImageType(imagick::IMGTYPE_COLORSEPARATION);

on PHP 5.x working without setImageType well.

Example:
$im = new Imagick();
$r = $im->readImageBlob($label);
if (!$r) {
return FALSE;
}
$im->setImageType(imagick::IMGTYPE_COLORSEPARATION);
$im->posterizeimage(2, 0);
$bmp = $im->getImageBlob();
To Top