Python を使用して画像を水平方向に結合する
Python は、複数の画像を水平方向に結合するオプションなどの強力な画像処理機能を提供します。この記事では、3 つの JPEG 画像を結合して、適切な配置とシームレスな移行を確保しようとするときに直面する課題について説明します。
問題の概要
目的は、3 つの画像を水平方向に連結することです。それぞれのサイズは 148 x 95 ピクセルです。望ましい出力は、3 つのサブイメージがシームレスにマージされた単一のイメージです。
初期試行
最初のアプローチでは、for ループ内でネストされたループを利用し、 Image.paste() メソッドを使用して、新しく作成したキャンバスに各画像を貼り付けます。ただし、この結果、出力には部分的な画像が表示されます。
改訂されたソリューションの実装
問題を修正するために、画像を活用したより効率的なアプローチが開発されました。 .open() メソッドと Image.size() メソッドを使用して画像の寸法を取得し、新しい画像のサイズを動的に調整します。コードは次のとおりです:
<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>
結果
修正されたソリューションは画像を水平方向に正常に結合し、期待どおりの出力を生成しました:
Test1.jpg Test2.jpg Test3.jpg ──────▄▄██▀▀▀▀▄──────────▄▄██▀▀▀▀▄──────────▄▄██▀▀▀▀▄ ─────█▒▒░██▄▒▒▒█───────█▒▒░█████▒█───────█▒▒░█████▒█ ───▄████▒▒████▒▒██▄──▄████▒▒████▒▒██▄──▄████▒▒████▒▒██▄ ───██▒▒▒█▒▒▒█▒▒▒█▒▒██─██▒▒▒█▒▒▒█▒▒▒█▒▒██─██▒▒▒█▒▒▒█▒▒▒█▒▒██ ──██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██─██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██─██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██ ─██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒█─ ██▒▒▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒▒██ ─██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒████▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒████▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒█─ ───██▒▒▒█▒▒▒█▒▒▒█▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒▒█▒▒▒█▒▒▒█─── ───▄████▒▒▒█▒▒▒█▒▒▒█████▒▒█████▒▒▒█▒▒▒█████▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒████▄─── ─────█▒▒▒████▒█▒▒▒▒▒▒████▒▒▒████▒▒█▒▒▒▒▒▒████▒▒▒████▒▒████▒▒▒▒▒█▒▒▒█───── ─────────▐▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█────────── ──────────▀▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█───────────
この改良されたソリューションは 3 つの画像を効果的に連結し、余分な部分画像が表示される問題を回避しました。複数の画像を水平方向に結合する動的でカスタマイズ可能な方法を提供し、汎用の画像処理タスクに適しています。
以上が記事の本質を捉えた、質問ベースのタイトルをいくつか紹介します。 **一般的な:** * **Python で画像を水平方向に結合する方法: ステップバイステップ ガイド** * **Python での画像の連結の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。