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>
솔루션에는 다음과 같은 주요 수정 사항이 포함됩니다.
이미지 크기를 하드 코딩하지 않고 한 줄에 크기를 지정하는 조항(둘 다 추가 정보에 언급됨)은 개선된 코드에 내재되어 있습니다.
설명
업데이트된 코드는 먼저 모든 입력 이미지의 너비와 높이를 계산하고 이 값을 사용하여 출력 이미지의 전체 너비와 최대 높이를 결정합니다.
다음으로 계산된 크기로 빈 이미지를 생성합니다.
그런 다음 각 입력 이미지를 반복하여 빈 이미지의 적절한 x 오프셋(0부터 시작)에 각 이미지를 붙여넣고, 붙여넣을 때마다 x 오프셋을 증가시켜 다음 이미지를 만듭니다.
마지막으로 결합된 이미지가 지정된 파일명으로 저장됩니다.
위 내용은 Python에서 이미지를 가로로 연결하는 방법: 빠른 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!