ホームページ >バックエンド開発 >Python チュートリアル >部分セグメントなしでPythonで画像を水平方向に結合する方法?

部分セグメントなしでPythonで画像を水平方向に結合する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-25 16:32:421045ブラウズ

How to Combine Images Horizontally in Python Without Partial Segments?

Python で画像を水平方向に結合する

複数の JPEG 画像を水平方向に結合しようとすると、出力に追加の部分画像が表示されるなどの課題が発生する可能性があります。この問題に対処する解決策は次のとおりです。

問題:

3 つの 148 x 95 ピクセルの画像があり、不要な余分なセグメントを残さずにそれらを水平方向に結合したいと考えています。

解決策:

  1. 寸法の計算:

    • の幅と高さを取得します。 zip 関数を使用して、すべての画像をタプルのリストとして保存します。
    • 幅を合計して合計幅を決定し、最大高さを見つけることで最大高さを決定します。
  2. 新しい画像の作成:

    • Image.new メソッドを使用して、手順 1 で計算した寸法で新しい画像を作成します。
  3. 画像の貼り付け:

    • X 座標オフセットを 0 に初期化します。
    • 元のリスト内の各画像を繰り返し処理します。
    • 現在の画像を新しい画像のオフセット位置に貼り付け、オフセットを現在の画像の幅に設定します。

この変更されたコードを使用します:

<code class="python">import sys
from PIL import Image

images = [Image.open(x) for x in ['Test1.jpg', 'Test2.jpg', 'Test3.jpg']]
widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height))

x_offset = 0
for im in images:
  new_im.paste(im, (x_offset,0))
  x_offset += im.size[0]

new_im.save('test.jpg')</code>

部分セグメントを含まない、目的の水平方向に結合された画像が生成されます。

以上が部分セグメントなしでPythonで画像を水平方向に結合する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。