Rumah >pembangunan bahagian belakang >Tutorial Python >Cara Menggabungkan Imej Secara Mendatar dalam Python: Panduan Pantas
Menggabungkan Imej Secara Mendatar dengan Python
Artikel ini bertujuan untuk menangani cabaran menggabungkan berbilang imej JPEG secara mendatar menggunakan Python.
Pernyataan Masalah
Pertimbangkan senario di mana tiga imej, setiap satu dengan dimensi 148 x 95, perlu dicantum secara mendatar untuk membentuk satu imej. Percubaan sebelumnya menggunakan kod berikut menghadapi masalah:
<code class="python">import sys from PIL import Image list_im = ['Test1.jpg','Test2.jpg','Test3.jpg'] new_im = Image.new('RGB', (444,95)) for elem in list_im: for i in xrange(0,444,95): im=Image.open(elem) new_im.paste(im, (i,0)) new_im.save('test.jpg')</code>
Cadangan Penyelesaian
Untuk menangani masalah tersebut, kod yang dipertingkatkan disediakan di bawah:
<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>
Penyelesaian termasuk pindaan utama berikut:
Peruntukan untuk mengelakkan dimensi imej pengekodan keras dan menentukan dimensi dalam satu baris (kedua-duanya disebut dalam maklumat tambahan) adalah wujud kepada kod yang dipertingkatkan.
Penjelasan
Kod yang dikemas kini terlebih dahulu mengira lebar dan ketinggian semua imej input dan menggunakan nilai ini untuk menentukan jumlah lebar dan ketinggian maksimum imej output.
Seterusnya, ia mencipta imej kosong dengan dimensi yang dikira.
Kemudian, ia berulang melalui setiap imej input, menampal setiap satu pada imej kosong pada x-offset yang sesuai (bermula dari 0), dan menambah x-offset selepas setiap tampal untuk memberi laluan kepada imej seterusnya.
Akhir sekali, imej gabungan disimpan ke nama fail yang ditentukan.
Atas ialah kandungan terperinci Cara Menggabungkan Imej Secara Mendatar dalam Python: Panduan Pantas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!