web-dev-qa-db-ja.com

Pythonで空のn * m PNGファイルを作成するにはどうすればよいですか?

4つのPNG画像を1つのPNGファイルに結合したいと思います。それらをImage.pasteメソッドと組み合わせる方法はわかっていますが、保存出力ファイルを作成できませんでした。実際には、n * m個の空のPNGファイルを作成し、画像を結合するために使用します。 pasteメソッドを使用できない場合は、ファイルサイズを指定する必要があります。

21
Amir
from PIL import Image
image = Image.new('RGB', (n, m))
30
John La Rooy

メソッドPIL.Image.new()を使用してイメージを作成できます。ただし、デフォルトの色はblackです。完全にwhite-background空の画像を作成するには、次のコードで初期化できます。

from PIL import Image
img = Image.new('RGB', (800,1280), (255, 255, 255))
img.save("image.png", "PNG")

背景が白で、サイズが800x1280の画像を作成します。

22
ccy

どの部分が混乱していますか?ドキュメントに示されているように、Image.newを実行するだけで新しい画像を作成できます。とにかく、PILで複数のイメージを1つに結合するためにずっと前に書いたコードを次に示します。それはそれらすべてを単一の行に配置しますが、あなたはアイデアを得ます。

max_width = max(image.size[0] for image in images)
max_height = max(image.size[1] for image in images)

image_sheet = Image.new("RGBA", (max_width * len(images), max_height))

for (i, image) in enumerate(images):
    image_sheet.paste(image, (
        max_width * i + (max_width - image.size[0]) / 2,
        max_height * 0 + (max_height - image.size[1]) / 2
    ))

image_sheet.save("whatever.png")
1
Antimony