使用Python水平組合影像
Python提供了強大的影像處理能力,包括水平組合多個影像的選項。本文解決了嘗試連接三個 JPEG 影像時面臨的挑戰,確保正確對齊和無縫過渡。
問題概述
目標是水平連接三個影像,每個尺寸為 148 x 95 像素。所需的輸出是一個影像,其中三個子影像無縫合併。
初始嘗試
初始方法使用 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 ──────▄▄██▀▀▀▀▄──────────▄▄██▀▀▀▀▄──────────▄▄██▀▀▀▀▄ ─────█▒▒░██▄▒▒▒█───────█▒▒░█████▒█───────█▒▒░█████▒█ ───▄████▒▒████▒▒██▄──▄████▒▒████▒▒██▄──▄████▒▒████▒▒██▄ ───██▒▒▒█▒▒▒█▒▒▒█▒▒██─██▒▒▒█▒▒▒█▒▒▒█▒▒██─██▒▒▒█▒▒▒█▒▒▒█▒▒██ ──██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██─██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██─██▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒██ ─██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒█─ ██▒▒▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒▒██ ██▒▒▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒▒██ ─██▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒████▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒████▒▒▒▒▒▒▒█▒▒▒▒▒█▒▒▒▒▒▒█─ ───██▒▒▒█▒▒▒█▒▒▒█▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒▒█▒▒▒█▒▒▒█─── ───▄████▒▒▒█▒▒▒█▒▒▒█████▒▒█████▒▒▒█▒▒▒█████▒▒█████▒▒▒█▒▒▒█▒▒▒█▒▒████▄─── ─────█▒▒▒████▒█▒▒▒▒▒▒████▒▒▒████▒▒█▒▒▒▒▒▒████▒▒▒████▒▒████▒▒▒▒▒█▒▒▒█───── ─────────▐▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█────────── ──────────▀▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█▒▒▒▒▒▒▒█───────────
這種改進的解決方案有效地連接了三張影像,避免了額外顯示部分影像的問題。它提供了一種動態且可自訂的方式來水平合併多個影像,使其適合通用影像處理任務。
以上是以下是一些基於問題的標題,它們抓住了文章的精髓: **一般的:** * **如何在 Python 中水平組合圖片:逐步指南** * **在 Pytho 中連接影像的詳細內容。更多資訊請關注PHP中文網其他相關文章!