php - Imagick 给出了错误的 gif 宽度和高度?
问题描述
我正在使用 Imagick 进行图像处理,但对于 1 个 gif 图像,我的 Imagick 给出了错误的宽度和高度。 这是那个图像
我的代码
$image = new \Imagick('O7gC.gif');
$image->getImageWidth(); // gives 1px
$image->getImageHeight(); // also gives 1px
$image->identifyImage(); // [geometry]['width'], and height is also 0
但
getimagesize() 提供正确的信息。
其他图像工作正常只是这个单一图像不工作?
和设置
$image->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN);
给出正确的宽度和高度,我无法理解这种行为,请解释一下?我正在使用 imagick
phpinfo 想象一下
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
解决方案
内部图像堆栈迭代器指向最后读取的 GIF 帧。最后一07gC.gif
帧是单个像素。当使用具有优化层的格式时,要么将内部迭代器重置为第一帧(在 GIF 中这将是最大的界限),要么合并所有帧(反转层优化)。
$image = new \Imagick('O7gC.gif');
$image->setFirstIterator();
.. 或者 ..
$image = new \Imagick('O7gC.gif');
$image = $image->coalesceImages();
推荐阅读
- javascript - 如何创建带有模式窗口的表单?
- json - 指导如何为 APNS 实际加密 JSON 令牌
- react-native - FileReader.readAsDataURL 在本机反应 0.57 中不起作用
- javascript - 在jsp中动态创建输入框并发送到servlet
- json - JQ中的可选键
- reactjs - 如何在 MUI Popover 中使用 Link react-router?
- mysql - MySQL 表(空间)存在但不能丢弃
- python - 如何在特定标签和屏幕截图中获取屏幕截图,包括使用 Chromedriver 滚动
- c# - TableView 编辑模式和单元格样式
- delphi - 使用 Delphi 发送屏幕(实现 VNC 客户端/服务器)