我认为这个问题与Zope无关。尽管如此,我将解释我要做什么:
我在Zope中使用PUT_factory通过FTP将图像上传到ZODB。上载的图像另存为Zope图像,位于新创建的容器对象中。效果很好,但是如果图像超过特定大小(宽度和高度),我想调整图像的大小。所以我正在使用PIL的缩略图功能来调整它们的大小,即200x200。只要上传的图像相对较小,此方法就可以正常工作。我没有检查出确切的限制,但是976x1296px还是可以的。
有了更大的图片,我得到:
Module PIL.Image, line 1559, in thumbnail
Module PIL.ImageFile, line 201, in load
IOError: image file is truncated (nn bytes not processed).
我从相机上测试了很多jpeg。我不认为他们都被截断了。
这是我的代码:
if img and img.meta_type == 'Image':
pilImg = PIL.Image.open( StringIO(str(img.data)) )
elif imgData:
pilImg = PIL.Image.open( StringIO(imgData) )
pilImg.thumbnail((width, height), PIL.Image.ANTIALIAS)
当我使用PUT_factory时,我没有文件对象,我正在使用来自工厂的原始数据或先前创建的(Zope)Image对象。
我听说,当超过特定大小时,PIL处理图像数据的方式有所不同,但是我不知道如何调整代码。还是与PIL的延迟加载有关?
我在这里回复有点晚,但是我遇到了类似的问题,我想分享我的解决方案。首先,这是此问题的非常典型的堆栈跟踪:
Traceback (most recent call last):
...
File ..., line 2064, in ...
im.thumbnail(DEFAULT_THUMBNAIL_SIZE, Image.ANTIALIAS)
File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1572, in thumbnail
self.load()
File "/Library/Python/2.7/site-packages/PIL/ImageFile.py", line 220, in load
raise IOError("image file is truncated (%d bytes not processed)" % len(b))
IOError: image file is truncated (57 bytes not processed)
如果我们看一下第220行(在您的情况下是第201行,也许您正在运行的版本稍有不同),我们会看到PIL正在读取文件的块,并且它期望这些块将具有一定的大小。事实证明,您可以通过更改设置来请求PIL容忍被截断的文件(该块中缺少某些文件)。
在代码块之前的某个位置,只需添加以下内容:
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
…你应该很好。
编辑:看起来这对与Pillow捆绑在一起的PIL版本有所帮助(“ pip安装枕头”),但可能不适用于PIL的默认安装
如何发送带有文件的php电子邮件 Antrag=图像文件 我所尝试的 输出电子邮件: 控制器 看法
我正在测试一种使用改装库发送图像的方法。在此处的改装文件中:http://square.github.io/retrofit/有一种方法可以使用@MultiPart注释。我正在尝试像文档一样使用,但对我来说仍然不起作用。 我该怎么做? 我在努力。 Web服务php文件 Usario的侦听器 活动 例外 电子/错误:(5200):com。谷歌。格森。JsonSyntaxException:com。谷
我想在ImageView中将图像居中。ImageViews用于列表中图片的缩略图,我使用了宽度和高度为90的固定视口,使它看起来更干净。这些图片使用背景加载,所以我不知道图片放入ImageView时的尺寸。当然,我不想拉伸(或裁剪)图像。我在加载图像时使用preserveRatio。有什么方法可以让图像居中,而不是左上角?图像的最长边总是90度。
搜索了几个星期的网页,但不能找到满足我所有需求的答案(只有部分),帮助是非常欢迎的。 我想要的和已经完成的: 符合普通HTML5和CSS 在文章中显示图像 图像必须有标题 标题必须位于图像下方 标题必须限制在图像的水平大小 标题可能长于一行,文本应换行到下一行(仍在图像大小范围内) 图像和标题必须作为一组向左或向右浮动(请考虑使用 ) 文章文本必须环绕图像和标题 图像大小不同(第一个图像为200p
我正在使用具有响应图像的引导。我想通过向浏览器提供多种图像大小来优化加载时间。根据本文,使用srcset这样的简单方法有助于让浏览器选择最佳图像大小: 我的问题是,将其与引导img响应类相结合,即使只需要一张小图片,也会加载一张大图片。 代码示例:Bootply。使用Chrome进行测试,它内置支持srcset支持!其他一些浏览器需要picturefill.js才能识别它。) 如果您复制图像的源(
我有回家的路线。在这个主路由中,我使用Jimp库来处理图像,调整它的大小,然后更改质量,最后将图像保存在目录中,但我想下载图像,以便用户可以在他的机器上下载。但它没有下载。我正确地保存在名为output.jpg的目录中。这是密码 app.get(“/”,(req,res)=>{ res.type(“jpg”);RES.Attachment(“output.jpg”) jimp.read('lenn