Python에서 이미지를 가로로 연결하는 방법: 빠른 가이드

Barbara Streisand
풀어 주다: 2024-10-26 09:41:02
원래의
314명이 탐색했습니다.

How to Concatenate Images Horizontally in Python: A Quick Guide

Python을 사용하여 이미지를 수평으로 연결

이 문서는 Python을 사용하여 여러 JPEG 이미지를 수평으로 결합하는 문제를 해결하는 것을 목표로 합니다.

문제 설명

각각 148 x 95 크기의 이미지 3개를 가로로 결합하여 단일 이미지를 형성해야 하는 시나리오를 생각해 보세요. 다음 코드를 사용한 이전 시도에서 문제가 발생했습니다.

<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>
로그인 후 복사

제안된 솔루션

문제를 해결하기 위해 아래에 개선된 코드가 제공됩니다.

<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>
로그인 후 복사

솔루션에는 다음과 같은 주요 수정 사항이 포함됩니다.

  • zip(*(i.size for i in Images))을 사용하여 결합된 이미지의 전체 너비와 높이를 결정합니다
  • 문제가 있는 중첩 루프를 목록의 각 이미지를 반복하는 단순화된 루프로 교체
  • 실수로 겹치는 것을 방지하기 위해 각 이미지의 너비에 따라 붙여넣기 위치를 조정합니다.

이미지 크기를 하드 코딩하지 않고 한 줄에 크기를 지정하는 조항(둘 다 추가 정보에 언급됨)은 개선된 코드에 내재되어 있습니다.

설명

업데이트된 코드는 먼저 모든 입력 이미지의 너비와 높이를 계산하고 이 값을 사용하여 출력 이미지의 전체 너비와 최대 높이를 결정합니다.

다음으로 계산된 크기로 빈 이미지를 생성합니다.

그런 다음 각 입력 이미지를 반복하여 빈 이미지의 적절한 x 오프셋(0부터 시작)에 각 이미지를 붙여넣고, 붙여넣을 때마다 x 오프셋을 증가시켜 다음 이미지를 만듭니다.

마지막으로 결합된 이미지가 지정된 파일명으로 저장됩니다.

위 내용은 Python에서 이미지를 가로로 연결하는 방법: 빠른 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿