首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Imagick给了gif错误的宽度和高度?

Imagick给了gif错误的宽度和高度?
EN

Stack Overflow用户
提问于 2019-03-15 06:09:21
回答 1查看 629关注 0票数 1

我使用Imagick进行图像处理,但是对于1gif图像,Imagick给出了错误的宽度和高度。这就是那张照片

https://i.gifer.com/O7gC.gif

我的代码

代码语言:javascript
复制
$image = new \Imagick('O7gC.gif');
$image->getImageWidth();     // gives 1px
$image->getImageHeight();    // also gives 1px
$image->identifyImage();     // [geometry]['width'], and height is also 0

getimagesize()提供了正确的信息。

其他图像工作正常,只是这个单一的图像不起作用?

和设置

代码语言:javascript
复制
$image->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN);

给出正确的宽度和高度,我不能理解这种行为请解释?我在用imagick

phpinfo图像

代码语言:javascript
复制
Imagick compiled with ImageMagick version : ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org

Imagick using ImageMagick library version : ImageMagick 7.0.7-11 Q16 x64 2017-11-23 http://www.imagemagick.org
ImageMagick release date : 2017-11-23
EN

回答 1

Stack Overflow用户

发布于 2019-03-15 12:29:14

内部图像堆栈迭代器指向最后读取的GIF帧。对于07gC.gif,最后一个帧是一个像素。当使用具有优化层的格式时,要么将内部迭代器重置为第一个帧(在GIF中这将是最大的界限),要么合并所有帧(反转层优化)。

代码语言:javascript
复制
$image = new \Imagick('O7gC.gif');
$image->setFirstIterator();

。。或者..。

代码语言:javascript
复制
$image = new \Imagick('O7gC.gif');
$image = $image->coalesceImages();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55176565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档