2016-12-19 5 views
0

화면의 특정 범위에서 스크린 샷을 찍고 싶습니다. 그런 다음 특정 라인의 픽셀 값 (예 : x_axis가 400에서 800)을 확인하고 싶습니다. imagegrab, gdi32.GetPixel 및 기타 여러 가지 방법을 시도했습니다. 그것은 픽셀 값은 많은 시간을 읽는 것, 그래서 난 심지어이 빨리하지 않는 것이픽셀 값 배열을 읽으십시오 python

im = ImageGrab.grab(box) 
pixels = list(im .getdata()) 

처럼리스트로 일을으로 변환했습니다. 내가 뭘 잘못하고 있니?

답변

1

ImageGrab은 픽셀을 PIL 형식 (Python 이미징 라이브러리 : http://effbot.org/imagingbook/image.htm)으로 반환하고 .getdata()은 이미 픽셀을 시퀀스로 반환합니다. list()에 다시 포장하면 동일한 (비싼) 작업을 두 번하고 있습니다. 당신은 할 수있다 :

im = ImageGrab.grab(box) 
pixels = im.getdata() 

그리고 당신이 좋아하는 방식으로 픽셀을 반복합니다.

+0

안녕하세요, 고맙습니다 ....하지만 im.getdata()에서이 색상을 사용하면 알려주실 수 있습니다 : 어떻게하면 3 픽셀 만 검사 할 수있는 방식으로 반복 할 수 있습니까? – user3345850

+0

픽셀을 처리 한 다음 2를 처리하지 않고 픽셀 2를 처리하지 않고 처리해야한다는 것을 의미합니까? – mprat

+0

예, 정확히 ,,,, – user3345850

관련 문제