JPEG로 실험 한 결과 the doc에 "100은 JPEG 양자화 단계를 완전히 비활성화합니다."라고 말했습니다.PIL jpeg, 픽셀 색상을 유지하는 방법
그러나 저장 중에 픽셀 수정이 필요합니다.
import Image
red = [20,30,40,50,60,70];
img = Image.new("RGB", [1, len(red)], (255,255,255))
pix = img.load()
for x in range(0,len(red)):
pix[0,x] = (red[x],255,255)
img.save('test.jpg',quality=100)
img = Image.open('test.jpg')
pix = img.load()
for x in range(0,len(red)):
print pix[0,x][0],
내가 예상치 못한 결과를 얻었다 : 여기 내 코드는 22 25 42 45 62 65
나는 픽셀 값을 유지하기 위해 어떻게해야합니까? 나는 또한 imagejpeg을 사용하여 PHP를 시도했으며 quality = 100 일 때 올바른 값을 주었다. 는 항상 손실 성 위험을 수행
ok PIL에서 서브 샘플링을위한 옵션이 있습니다. img.save()에서 subsampling = 0으로 설정하면 정확한 20-70이됩니다. 빨강, 초록, 파랑의 모든 값을 동일하게 설정하는 경우도 있습니다. – w00d
@ w00d, 문서화 된 곳으로 연결되는 링크를 제공 할 수 있습니까? 나는 그것을 발견 할 수 없었다. –
내가 문서화되지 않은 것 같아서 출처 : https://bitbucket.org/effbot/pil-2009-raclette/src/cd403356263f039a4a48a1111c7f5cc38686e481/PIL/JpegImagePlugin.py?at=default#cl-437 – w00d