在 TextEdit 文档扩展中使用 PIL 创建缩略图结果

Using PIL to create thumbnails results in TextEdit Document extension

使用 PIL,我能够创建图片的缩略图,但根据我的计算机 (运行 Mac OS X),我的图片的扩展名为 TextEdit Document 而不是 pngjpeg。我想知道如何修复才能得到正确的扩展名。

这是我的代码 运行:

>>> from PIL import Image
>>> import glob, os
>>> size = 128, 128
>>> pic = glob.glob("cherngloong1.jpg")
>>> im = Image.open(pic[0])
>>> im
<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=2048x1365 at 0x100A63BD8>
>>> im.thumbnail(size, Image.ANTIALIAS)
>>> im.save("cherngloong_thumbnail", "PNG")
>>> im.save("cherngloong_thumbnail1", "JPEG")

缩略图扩展:

我认为 OSX 只是根据文件名中缺少扩展名(即 .jpg.png)推断 "TextEdit Document"。尝试添加一个:

im.save("cherngloong_thumbnail.png", "PNG")
im.save("cherngloong_thumbnail1.jpg", "JPEG")

这很可能发生,因为您没有使用文件扩展名保存。

大多数现代操作系统使用文件扩展名来确定应由哪个程序打开文件。

自从您致电:

>>> im.save("cherngloong_thumbnail", "PNG")
>>> im.save("cherngloong_thumbnail1", "JPEG")

编码是PNG/JPG,但扩展名不是。

另外,对于为什么它被 TextEdit 打开,您可能有一个没有扩展名的自述文件(或其他一些文本文档)。当您打开它时,您可能使用 TextEdit 打开它,因此对于所有没有扩展名的文件,OS X 使用 TextEdit 打开文件。

要解决您的问题,请这样保存:

im.save("cherngloong_thumbnail.png", "PNG")
im.save("cherngloong_thumbnail1.jpg", "JPEG")

请注意,为了兼容性,您应该使用小写字母保存,因为一些 *nix OSes 以不同方式处理大写和小写扩展名。 它将像您计算机上的任何其他图像文件一样对待。 在 the Wikipedia page

上阅读有关文件扩展名的更多信息