programing

Python Imaging Library에서 크기가 조정 된 이미지의 품질을 조정하는 방법은 무엇입니까?

shortcode 2021. 1. 17. 11:17
반응형

Python Imaging Library에서 크기가 조정 된 이미지의 품질을 조정하는 방법은 무엇입니까?


저는 PIL을 작업 중이며 이미지 크기를 조정하거나 축소판을 만드는 동안 이미지 품질을 조정할 수 있는지 알아야합니다. 내가 알고있는 것은 기본 품질이 85로 설정되어 있다는 것입니다. 크기를 조정하는 동안이 매개 변수를 조정할 수 있습니까?

현재 다음 코드를 사용하고 있습니다.

image = Image.open(filename)
image.thumbnail((x, y), img.ANTIALIAS)

ANTIALIAS매개 변수는 아마도 최고의 품질을 제공합니다. 품질 옵션에 대해 더 세분화 할 수 있는지 알고 싶습니다.


PIL의 resize방법을 수동으로 사용하십시오 .

image = image.resize((x, y), Image.ANTIALIAS)  # LANCZOS as of Pillow 2.7

저장 방법에 따라

quality_val = 90
image.save(filename, 'JPEG', quality=quality_val)

models.pyPhotologue 의 출처를 살펴 보고 어떻게하는지 확인하십시오.


ANTIALIAS는 "85"품질 수준에 필적 할 수 없습니다. ANTIALIAS 매개 변수는 픽셀을 한 크기에서 다른 크기로 리샘플링하는 데 사용할 알고리즘을 축소판 방법에 알려줍니다. 예를 들어 다음과 같은 3x3 이미지가있는 경우 :

2 2 2
2 0 2
2 2 2

2x2로 크기를 조정하면 한 알고리즘이 나에게 줄 수 있습니다.

2 2
2 2

근처에있는 대부분의 픽셀은 2 초이고 다른 픽셀은 나에게 줄 수 있습니다.

1 1
1 1

중간에있는 0을 고려하기 위해. 그러나 여전히 압축을 시작하지 않았으며 이미지를 저장할 때까지 처리하지 않을 것입니다. 즉, 썸네일 링에서 품질의 그라데이션을 다루는 것이 아니라 리샘플링을위한 개별 알고리즘을 사용합니다. 따라서 여기서는 더 세밀하게 제어 할 수 없습니다.

손실 압축을 사용하는 형식으로 저장하는 경우 여기에서 품질 수준을 지정할 수 있습니다.


크기 조정과 압축을 혼동하지 마십시오.

최상의 품질을 얻으려면 둘 다 사용해야합니다. 다음 코드를 참조하십시오.

from PIL import Image

image = Image.open(filename)
image.thumbnail((x, y), Image.ANTIALIAS)
image.save(filename, quality=100)

이런 식으로 저는 프로그램에서 아주 좋은 엄지 손가락을 가지고 있습니다.


앤티 앨리어싱 n은 90과 같은 품질 설정

   img = img.resize((128,128),Image.ANTIALIAS)
   img.save(os.path.join(output_dir+'/'+x,newfile),"JPEG",quality=90)

http://www.dzone.com/snippets/resize-thousands-images-python


더 나은 품질을 달성하는 한 가지 방법은 두 단계로 축소하는 것입니다. 예를 들어 원본 이미지가 1200x1200이고 64x64 픽셀로 크기를 조정해야하는 경우 첫 번째 단계에서 다음 두 크기의 중간으로 축소합니다.

1200x1200-> 600x600-> 64x64

참조 URL : https://stackoverflow.com/questions/1405602/how-to-adjust-the-quality-of-a-resized-image-in-python-imaging-library

반응형