2012-12-27 2 views
1

Gtk 창에 객체 이미지를 표시해야하는 앱이 있지만 이미지 크기에 심미적 인 창 크기를 만들고 싶습니다. 기본적으로 다음과 같습니다.Python 3 및 GTK 3에서 Gtk.Image 객체의 크기 확인

. . . 
image = Gtk.Image.new_from_file(filename) 
width, height = image_dimension(image) 
window.set_size_request(width, height) 
. . . 

위의 "image_dimension"기능과 같은 기능이 필요합니다. 슬프게도 python 3에는 PIL (python image library)이 없으므로 사용하기가 매우 쉽습니다.

나는 new-ish 프로그래머이고 헤더 파싱 (예 : jpg 파일)을하고 싶지 않습니다. 일부 파일에서 작동하기를 원하기 때문입니다.

감사합니다,

Narnie

답변

1

사용 GdkPixbuf.Pixbuf는 이미지 파일을로드합니다. 이렇게하면 높이와 너비뿐만 아니라 이미지의 다른 많은 속성을 가져올 수 있습니다. 그런 다음 Gtk.Image.new_from_pixbuf()으로 이미지 위젯을 만듭니다.

+0

저는 GkdPixbuf가 8 비트 이미지로만로드 할 수 있다는 것을 읽었습니다. 사실입니까? GdkPixbuf.Pixbuf가 이미지 유형을 결정합니까? 나는 GdkPixbuf.Pixbuf를 알아 내려고 많은 시간을 보냈지 만, 파이썬을위한 명확한 예를 찾을 수 없었다. (그리고 나는 c에서 몇 가지 예제를 살펴 봤지만, 나는 프로그래머가 아니기 때문에 번역하기가 어려웠다. 파이썬). 이것에 대한 자습서가 있습니까? 또한 이미지 데이터를 GdkPixbuf.Pixbuf에 변수로 연결하는 방법이 있습니까? 그렇다면 어떻게? GDK3가있는 Devhelp를 확인하고 get_from_window 및 get_from_surface 메소드 만있는 Pixbuf 만 찾으십시오. 고맙습니다. :) – narnie

+0

GdkPixBuf API를 참조하는 GDK3 문서 아래 정보에서 찾았습니다.이 API는 new_from_data 메소드를 찾았지만 높이와 너비를 먼저 알아야합니다. 먼저 파일을 다시로드 한 다음 실제로는 처음에 무엇을하려고했는지를 확인하십시오. – narnie

+0

파일에서로드하면 너비와 높이를 알 필요가 없습니다. – ptomato