Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan Imej Secara Mendatar dalam Python Tanpa Segmen Separa?

Bagaimana untuk Menggabungkan Imej Secara Mendatar dalam Python Tanpa Segmen Separa?

Barbara Streisand
Barbara Streisandasal
2024-10-25 16:32:42943semak imbas

How to Combine Images Horizontally in Python Without Partial Segments?

Menggabungkan Imej Secara Mendatar dalam Python

Mensasarkan untuk menggabungkan berbilang imej JPEG secara mendatar, anda mungkin menghadapi cabaran seperti imej separa tambahan yang muncul dalam output. Berikut ialah penyelesaian yang menangani isu ini.

Masalah:

Anda mempunyai tiga imej 148 x 95 piksel dan anda mahu menggabungkannya secara mendatar tanpa sebarang segmen tambahan yang tidak diingini.

Penyelesaian:

  1. Kira Dimensi:

    • Dapatkan lebar dan ketinggian semua imej sebagai senarai tupel menggunakan fungsi zip.
    • Tentukan jumlah lebar dengan menjumlahkan lebar dan ketinggian maksimum dengan mencari ketinggian maksimum.
  2. Buat Imej Baharu:

    • Buat imej baharu dengan dimensi yang dikira dalam langkah 1 menggunakan kaedah Image.new.
  3. Tampal Imej:

    • Mulakan offset koordinat-x kepada 0.
    • Lelar melalui setiap imej dalam senarai asal.
    • Tampal imej semasa pada imej baharu pada offset dan tetapkan offset kepada lebar imej semasa.

Menggunakan kod diubah suai ini:

<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>

akan menghasilkan imej gabungan mendatar yang dikehendaki tanpa sebarang segmen separa.

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

Kenyataan:
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