44

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

4

3 に答える 3

65
from PIL import Image
image = Image.new('RGB', (n, m))
于 2012-10-06T13:57:51.660 に答える
60

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

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

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

于 2017-06-04T02:30:24.910 に答える
2

どの部分で混乱していますか?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")
于 2012-10-06T14:02:22.870 に答える