Imagick::optimizeImageLayers

(PECL imagick 2, PECL imagick 3)

Imagick::optimizeImageLayers移除图像的重复部分以进行优化

描述

public Imagick::optimizeImageLayers(): bool

比较 GIF 序列中每个图像与之前图像的处置形式。由此尝试选择最小的裁剪图像来替换每个帧,同时保留动画效果。如果 Imagick 是针对 ImageMagick 版本 6.2.9 或更高版本编译的,则可以使用此方法。

参数

此函数没有参数。

返回值

成功时返回 true

错误/异常

发生错误时抛出 ImagickException。

示例

示例 #1 使用 Imagick::optimizeImageLayers()

读取、优化和写入 GIF 图像

<?php
/* 创建新的 imagick 对象 */
$im = new Imagick("test.gif");

/* 优化图像层 */
$im->optimizeImageLayers();

/* 将图像写回 */
$im->writeImages("test_optimized.gif", true);
?>

参见

添加注释

用户贡献的注释 1 则注释

f21 dot groups at gmail dot com
11 年前
在 imagick 3.x 中(尚未检查 2.x),这返回一个 imagemagick 对象而不是布尔值。

<?php

$image
= new Imagick('myanimation.gif');

$image = $image->optimizeImageLayers(); // 不返回布尔值!

$image->writeImage('optimized.gif');
To Top