2012-07-25 4 views
1

고정 된 크기로 입력 이미지의 크기를 조정하고 싶습니다. 그런 다음 다른 버퍼 (데이터)와 함께 추가로 사용하기 위해 크기가 조정 된 이미지 파일의 전체 내용을 버퍼에 저장하려고합니다. 이미지 크기를 조정하고 파이썬을 사용하여 버퍼에 데이터를 가져옵니다.

은 현재 내가
def get_resize_img(img_file): 
    img = Image.open(img_file) 
    img = img.resize((640,960), Image.NEAREST) 
    img.save("tmp_out.jpg") 
    fp = open("tmp_out.jpg", "rb") 
    data = fp.read() 
    fp.close() 
    print "img sz:", len(data) 
    return data 

이 더미 파일 (tmp_out.jpg)로 작성하고 그것에서 다시 읽지 않고이를 달성하기 위해 더 나은 방법이, 다음 파이썬 기능을 사용하여 그 일을하고있다.

-Mohan

답변

0
Import StringIO 

def get_resize_img(img_file): 
    buffer = StringIO.StringIO() 
    img = Image.open(img_file) 
    img = img.resize((640,960), Image.NEAREST) 
    format = "YOUR_FORMAT" // JPG,PNG,etc. 
    img.save(buffer,format) 
    return buffer.getvalue() 
0

는 당신이 실제로 이미지 버퍼 인 이미지 데이터를 얻기 위해 getdata를 사용할 수 있다고 생각합니다. 그런 다음 frombuffer을 사용하여 이미지를 재구성 할 수 있습니다. 또는 크기가 조정 된 Image 객체를 반환하고 나중에 사용할 수 있습니다.

여기에서 document을 확인할 수 있습니다.

0

당신은

data = numpy.asarray(im) 

을 수행 할 수 있습니다 다음 NumPy와를 사용하는 경우
관련 문제