相关疑难解决方法(0)

从 GIF 提取帧到 PNG 时丢失数据?

当我尝试使用 fraxel 的答案时

http://stackoverflow.com/questions/10269099/pil-convert-gif-frames-to-jpg

在图像上http://24.media.tumblr.com/fffcc2d8e980fbba4f87d51ed4916b87/tumblr_mh8uaqMo2I1rkp3avo2_250.gif

我得到了一些数据,但对于一些数据,我得到了丢失的数据,例如

正确的

正确_1 正确_2

丢失的

失踪_1 在此输入图像描述

为了显示这些,我使用 imagemagick display foo* ,然后使用空间在图像中移动......是否有可能 imagemagick 读取错误?

编辑:

即使使用转换然后通过显示,display foo* 我也会得到以下信息

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

那么这是否是gif的一个特点呢?

imagemagick image-processing gif tumblr python-imaging-library

5
推荐指数
1
解决办法
1545
查看次数

PIL中的图像转换,pgm文件错误

尝试在PIL python库中执行以下操作时:

Image.open('Apple.gif').save('Apple.pgm')
Run Code Online (Sandbox Code Playgroud)

代码失败了:

  Traceback (most recent call last):
  File "/home/eran/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev_2.6.0.2012062818/pysrc/pydevd_comm.py", line 765, in doIt
    result = pydevd_vars.evaluateExpression(self.thread_id, self.frame_id, self.expression, self.doExec)
  File "/home/eran/.eclipse/org.eclipse.platform_3.7.0_155965261/plugins/org.python.pydev_2.6.0.2012062818/pysrc/pydevd_vars.py", line 376, in evaluateExpression
    result = eval(compiled, updated_globals, frame.f_locals)
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 1439, in save
    save_handler(self, fp, filename)
  File "/usr/lib/python2.7/dist-packages/PIL/PpmImagePlugin.py", line 114, in _save
    raise IOError, "cannot write mode %s as PPM" % im.mode
IOError: cannot write mode P as PPM
Run Code Online (Sandbox Code Playgroud)

代码可以正常转换为BMP,但JPG也失败了.奇怪的是,一个不同的文件(JPG到PGM),工作正常.

其他格式转换.那是:

Image.open('Apple.gif').save('Apple.bmp')
Run Code Online (Sandbox Code Playgroud)

作品.

知道为什么吗?

python image-processing python-imaging-library

4
推荐指数
1
解决办法
8771
查看次数

用python打开的Gifs已经破帧了

有时,当打开GIF并将单独的帧保存到文件时,框架的形状会很糟糕.所有的GIF都不会发生这种情况,但是在许多帧中会发生这种情况.

这是原来的GIF

http://imgur.com/XMxW3m3

这是第一帧(好了)

http://imgur.com/xv43alb

这是第二帧(拧出来的)

http://imgur.com/hG4VxzL

我用两个不同的python模块尝试了同样的事情.第一个PIL

from PIL import Image

img = Image.open('pigs.gif')

counter = 0
collection = []
while True:
    try:
        img.save('original%d.gif' % counter)
        img.seek(img.tell()+1)
        counter += 1
    except EOFError:
        break
Run Code Online (Sandbox Code Playgroud)

然后魔杖:

from wand.image import Image

img = Image(filename='pigs.gif')

for i in range(len(img.sequence)):
    img2 = Image(img.sequence[i])
    img2.save(filename='original%d.gif' % i)
Run Code Online (Sandbox Code Playgroud)

两个模块也是如此.

这是怎么回事?

PS:我发现其他人有相同的症状.然而,这些解决方案(两者都围绕PIL的错误,当你执行.seek()时删除调色板)并没有解决我的问题: Python:将GIF帧转换为PNGPIL - 将GIF帧转换为JPG

python gif

2
推荐指数
1
解决办法
561
查看次数