Python 처리 그림 일 그 러 짐

어제 간단 한 이미지 처리 배경 을 만 들 려 면 PIL (Python Image Library) 을 사용 해 야 합 니 다. 그 전에 몇 가지 어 려 운 점 이 몇 번 걸 렸 는 지 자세히 연구 할 시간 이 없 었 습 니 다. 잠시 기록 하 겠 습 니 다.
 
PIL 에 있 는 Image Module 을 사용 하면 그림 을 편리 하 게 처리 할 수 있 습 니 다. 예 를 들 어 회전, 편집, 그림 크기 얻 기 등 몇 편의 예 와 문서 http://www.pythonware.com/library/pil/handbook/image.htm 를 간단하게 보면 아직도 강 한 느낌 이 듭 니 다.그러나 처리 방법 을 사용 하려 면 먼저 image 대상 을 얻어 야 합 니 다. open 방법 으로 경 로 를 여 는 것 은 간단 합 니 다. 그러나 str 형식 에서 image 대상 을 얻 으 면 약간 감 깁 니 다. 예 를 들 어 네트워크 에 있 는 그림 을 요청 하거나 데이터 베이스 에서 그림 을 읽 으 려 면 StringIO 로 처리 해 야 합 니 다. 코드:
 

res = urilib2.urlopen(img_url)
img_str = res.read()
img = Image.open(StringIO.StringIO(img_str)) #   img   

 
from string 과 from buffer 가 그림 을 여 는 것 과 무엇이 다른 지 잠시 알 수 없습니다.
 
또한 그림 저장 소 를 처리 할 때 아버 지 를 괴 롭 혔 습 니 다. tostring () 방법 으로 그림 을 str 형식 으로 복원 해 야 하지만 문서 에 서 는 tostring () 에 대해 서 는 중국 방법 에 대한 설명 이 정말 적 습 니 다. 결 과 는 저 장 된 그림 이 원래 의 것 보다 일 그 러 졌 을 가능성 이 높 습 니 다. 구 글 은 믿 을 만 한 답 을 보지 못 했 고 한 편 http://mail.python.org/pipermail/image-sig/2004-September/002908.html 만 있 었 습 니 다. 저장 할 때 몇 개의 인 자 를 전달 해 야 하 는 지 대충 알 수 있 습 니 다.
new_img = img.rotate(90)
new_img_str = new_img.tostring('jpeg', 'RGB', 90) 

 세 번 째 매개 변 수 는 jpeg 그림 의 quality, 0 - 90, 기본 75 입 니 다. 따라서 기본 적 인 육안 으로 처리 한 그림 이 일 그 러 진 것 을 알 수 있 습 니 다.JPEG 설명 참조: http://www.pythonware.com/library/pil/handbook/format-jpeg.htm
 
잠시 기록 하고 다음 에 쓰 면 다시 자세히 연구 하 겠 습 니 다.
 
-EOF-

좋은 웹페이지 즐겨찾기