Bagaimana untuk Menggabungkan Berbilang Imej Secara Mendatar dalam Python Tanpa Isu Bertindih?

Mary-Kate Olsen
Lepaskan: 2024-10-25 08:23:02
asal
369 orang telah melayarinya

How to Combine Multiple Images Horizontally in Python Without Overlapping Issues?

Menggabungkan Imej Secara Mendatar dalam Python

Artikel ini membincangkan isu menggabungkan berbilang imej JPEG secara mendatar dalam Python.

Masalah:

Pengguna mempunyai tiga imej yang sama dimensi (148 x 95), dan cuba menggabungkannya secara mendatar menggunakan kod yang disediakan. Walau bagaimanapun, output mempunyai imej separa tambahan yang bertindih dengan sub-imej sebelumnya.

Penyelesaian:

Untuk menyelesaikan isu ini, kami boleh menggunakan kod diubah suai berikut:

<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('combined_horizontally.jpg')</code>
Salin selepas log masuk

Kod ini mencapai perkara berikut:

  • Membuka imej input dan menentukan lebar dan ketinggiannya.
  • Mengira jumlah lebar dan ketinggian maksimum imej gabungan.
  • Mencipta imej baharu dengan dimensi yang dikira.
  • Tampal setiap imej input secara mendatar ke dalam imej baharu dengan offset yang sesuai.
  • Menyimpan imej gabungan sebagai combined_horizontally.jpg.

Pertimbangan Tambahan:

  • Kod menentukan dimensi imej secara dinamik, membolehkannya mengendalikan imej dengan saiz yang berbeza-beza.
  • Ia menentukan dimensi pada satu baris, menjadikannya mudah untuk melaraskan jika perlu.
  • Dengan menggunakan fungsi maks untuk menentukan ketinggian maks, imej gabungan akan menampung semua imej input, walaupun ia mempunyai ketinggian yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Berbilang Imej Secara Mendatar dalam Python Tanpa Isu Bertindih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!