【发布时间】:2015-04-13 16:31:16
【问题描述】:
我是 Python 的初学者,所以这个问题可能很愚蠢,但不幸的是我自己无法弄清楚。
使用以下脚本,我想创建一个黑色图像并将其保存在以下路径下:C://Users/User/Desktop/black.png
def create_file(x=1000,y=10):
img = Image.new('RGB', (x,y), "black") #creates a new black image
img.save('C://Users/User/Desktop/black.png')`
现在的重点是我想用这样的函数来假装路径、文件名和文件类型:
create_image(x=1000,y=10,path=C://Users/bsimon/Desktop/,filename=black,filetype=png)`
斗争开始了:
我找不到确切的语法如何将路径(文件名、文件类型)传递给 img.save 函数
使用与 png 不同的文件类型时出现错误。
img.save('C://Users/User/Desktop/black.png')行工作正常,但是当我尝试改用img.save('C://Users/User/Desktop/black.bmp')时,我使用(Blender)运行脚本的程序崩溃或陷入无限循环)。
【问题讨论】:
-
嗯,第一个问题是您忘记了
path、filename和filetype的默认值周围的引号,因此您的def语句可能会给您一个NameError之类的。但是,如果您向我们展示您尝试过的代码并解释我们的问题所在,而不是试图描述它并告诉我们它不起作用,那就太好了。 -
另外,不要试图在一个问题中问两个不相关的问题(除了碰巧发生在同一个程序中)。如果语法不正确,我不确定你是如何解决第二个问题的,但大概这意味着你可以编写一个很好的示例程序来演示第二个问题,这意味着你可以编写一个很好的单独的问题。
-
假设
path='C://Users/bsimon/Desktop'、filename='black'和filetype='png'那么img.save(os.path.join(path, filename+os.extsep+filetyp)应该适用于支持的filetyps。 -
@abarnert 谢谢你的帮助。我遇到了第二个问题,因为在之前我只使用了“严格”行
img.save('C://Users/User/Desktop/rainbow.png'),并且它起作用了。所以我将文件的结尾更改为.bmp以获得不同的文件类型。但我明白你要写一个单独的问题,我会这样做。 @martineau 谢谢,它有效:) -
关于第二个问题的简短说明:这可能是关于如何配置 PIL/Pillow 的问题(尤其是如果您实际上使用的是旧 PIL 而不是现代 PIL Pillow),所以也许一定要准确解释你是如何安装它的(例如,“我从Christoph Gohlke's Windows packages page 下载了 Pillow‑2.8.1‑cp33‑none‑win32.whl 并安装了它”或“我运行了
pip install pillow,它看起来就像我有 2.8.0" 或其他版本一样。
标签: python image python-imaging-library