查询

Imagick::orderedPosterizeImage()函数—用法及示例

「 通过有序抖动算法对图像进行分级处理 」


函数名: Imagick::orderedPosterizeImage()

适用版本: Imagick 3.4.0

用法:该函数通过有序抖动算法对图像进行分级处理。它将图像的颜色减少到指定的级别,并通过有序抖动算法来减小颜色平滑度,从而产生一种类似于卡通效果的图像。

语法:

public Imagick::orderedPosterizeImage(int $threshold_map, string $channel = Imagick::CHANNEL_ALL)

参数:

  • $threshold_map: 指定用于抖动算法的阈值映射。它是一个包含256个整数的数组,用于指定每个颜色级别的阈值。较大的值将产生较少的颜色级别,较小的值将产生更多的颜色级别。
  • $channel(可选): 指定要应用该函数的通道。默认为 Imagick::CHANNEL_ALL,表示所有通道。

返回值:成功时返回 true。

示例:

// 创建一个 Imagick 对象并加载图像
$image = new Imagick('input.jpg');

// 定义阈值映射数组
$threshold_map = [
    0, 16, 32, 48, 64, 80, 96, 112,
    128, 144, 160, 176, 192, 208, 224, 240,
    256, 272, 288, 304, 320, 336, 352, 368,
    384, 400, 416, 432, 448, 464, 480, 496,
    512, 528, 544, 560, 576, 592, 608, 624,
    640, 656, 672, 688, 704, 720, 736, 752,
    768, 784, 800, 816, 832, 848, 864, 880,
    896, 912, 928, 944, 960, 976, 992, 1008,
    // 其他阈值...
];

// 应用有序抖动算法进行分级处理
$image->orderedPosterizeImage($threshold_map);

// 显示处理后的图像
header("Content-Type: image/jpg");
echo $image;

在上面的示例中,我们首先创建了一个 Imagick 对象并加载了一个名为 "input.jpg" 的图像。然后,我们定义了一个阈值映射数组,其中包含了256个整数,用于指定每个颜色级别的阈值。最后,我们调用了 orderedPosterizeImage() 函数,并将阈值映射数组作为参数传递进去,实现了有序抖动算法的分级处理。处理后的图像将通过 echo $image 显示出来。

补充纠错
热门PHP函数
分享链接