2012-02-05 3 views
1

Gtk.Image 개체가 있고이 개체를 base64로 인코딩 된 문자열 (imgur과 함께 사용)로 변환하고 싶습니다. 나는 어떻게 그것을 성취 할 것인가?Gtk.Image를 base64로 변환하는 방법

+0

당신이 파일 이미지 형식 (PNG, JPEG, GIF 등의 base64로 인코딩 된 문자열을 원하는 .. .) 실제 Gtk.Image 객체가 아닌가? – Mark

+0

그래, imgur는 base64로 인코딩 된 png, jpeg et cetera를 기대한다고 생각한다. – Leon

+0

그렇다면 Gtk.Image에로드되는 데이터의 출처는 무엇인가? 그런 파일에서로드됩니까? – Mark

답변

1

는 gdk.pixbuf를 통해 실행해야하지만, 이것은 가장 쉬운 것 : 나는 추측하고

import cStringIO 
import base64 

pixBuf = gtkImage.get_pixbuf() 

fH = cStringIO.StringIO() 
pixBuf.save_to_callback(fH.write, "png") 
encodedBuffer = base64.b64encode(fH.getvalue()) #base64 encoded png 
+0

나는 이것이 옳은 대답이라고 생각한다. 하지만 유감스럽게도이 방법들은 [우분투에서 깨진 것 같습니다] (https://bugs.launchpad.net/ubuntu/+bug/888305) ... – Leon

+0

가능한 해결책은'pixbuf.get_pixels'를 사용하여 이미지 데이터를 얻는 것입니다 (str) 또는'pixbuf.get_pixels_array' (numpy 배열을 반환), 카이로 또는 PIL; 확실하지 않은 방법 그러나. –

관련 문제