home *** CD-ROM | disk | FTP | other *** search
- #
- # GdkImlib: An interface to gdk_imlib to go with gtk.py. It wraps the
- # native module _gdkimlib. It is sugested that you import it as
- # "import GdkImlib".
- #
- # Author: James Henstridge <james@daa.com.au>
- #
- # To use GdkImlib, create an instance of the GdkImlib.Image class. The
- # constructor takes a filename as its one argument. Then call the render
- # method (optionally with width and height arguments), and finally call
- # the make_pixamp method to get a GTK pixmap widget with the image loaded.
- #
- # For extra information, read the rest of this file, and Imlib's documentation.
- #
-
- import _gdkimlib
-
- from gtk import GtkPixmap
-
- #some constants ...
- RT_PLAIN_PALETTE = 0
- RT_PLAIN_PALETTE_FAST = 1
- RT_DITHER_PALETTE = 2
- RT_DITHER_PALETTE_FAST = 3
- RT_PLAIN_TRUECOL = 4
- RT_DITHER_TRUECOL = 5
-
- _gdkimlib.gdk_imlib_init()
-
- class Image:
- def __init__(self, filename="", _obj=None):
- if _obj: self._im = _obj; return
- self._im = _gdkimlib.gdk_imlib_load_image(filename)
- def __getattr__(self, attr):
- attrs = {
- 'rgb_width': _gdkimlib.gdk_imlib_get_rgb_width,
- 'rgb_height': _gdkimlib.gdk_imlib_get_rgb_height,
- 'filename': _gdkimlib.gdk_imlib_get_filename
- }
- if attrs.has_key(attr):
- return attrs[attr](self._im)
- raise AttributeError, attr
- def render(self, width=None, height=None):
- return _gdkimlib.gdk_imlib_render(self._im,
- width or self.rgb_width,
- height or self.rgb_height)
- def get_image_border(self):
- return _gdkimlib.gdk_imlib_get_image_border(self._im)
- def set_image_border(self, left=0, right=0, top=0, bottom=0):
- _gdkimlib.gdk_imlib_set_image_border(self._im, (left, right,
- top, bottom))
- def get_image_shape(self):
- return _gdkimlib.gdk_imlib_get_image_shape(self._im)
- def set_image_shape(self, red, green, blue):
- _gdkimlib.gdk_imlib_set_image_shape(self._im,(red,green,blue))
- def save_image_to_eim(self, file):
- _gdkimlib.gdk_imlib_save_image_to_eim(self._im, file)
- def add_image_to_eim(self, file):
- _gdkimlib.gdk_imlib_add_image_to_eim(self._im, file)
- def save_image_to_ppm(self, file):
- _gdkimlib.gdk_imlib_save_image_to_ppm(self._im, file)
- def set_image_modifier(self, gamma, brightness, contrast):
- _gdkimlib.gdk_imlib_set_image_modifier(self._im,
- (gamma, brightness, contrast))
- def set_image_red_modifier(self, gamma, brightness, contrast):
- _gdkimlib.gdk_imlib_set_image_red_modifier(self._im,
- (gamma, brightness, contrast))
- def set_image_blue_modifier(self, gamma, brightness, contrast):
- _gdkimlib.gdk_imlib_set_image_red_modifier(self._im,
- (gamma, brightness, contrast))
- def set_image_green_modifier(self, gamma, brightness, contrast):
- _gdkimlib.gdk_imlib_set_image_red_modifier(self._im,
- (gamma, brightness, contrast))
- def get_image_modifier(self):
- return _gdkimlib.gdk_imlib_get_image_modifier(self._im)
- def get_image_red_modifier(self):
- return _gdkimlib.gdk_imlib_get_image_red_modifier(self._im)
- def get_image_green_modifier(self):
- return _gdkimlib.gdk_imlib_get_image_green_modifier(self._im)
- def get_image_blue_modifier(self):
- return _gdkimlib.gdk_imlib_get_image_blue_modifier(self._im)
- def set_image_red_curve(self, curve):
- _gdkimlib.gdk_imlib_set_image_red_curve(self._im, curve)
- def set_image_green_curve(self, curve):
- _gdkimlib.gdk_imlib_set_image_green_curve(self._im, curve)
- def set_image_blue_curve(self, curve):
- _gdkimlib.gdk_imlib_set_image_blue_curve(self._im, curve)
- def get_image_red_curve(self):
- return _gdkimlib.gdk_imlib_get_image_red_curve(self._im)
- def get_image_green_curve(self):
- return _gdkimlib.gdk_imlib_get_image_green_curve(self._im)
- def get_image_blue_curve(self):
- return _gdkimlib.gdk_imlib_get_image_blue_curve(self._im)
- def apply_modifiers_to_rgb(self):
- _gdkimlib.gdk_imlib_apply_modifiers_to_rgb(self._im)
- def changed_image(self):
- _gdkimlib.gdk_imlib_changed_image(self._im)
- def flip_image_horizontal(self):
- _gdkimlib.gdk_imlib_flip_image_horizontal(self._im)
- def flip_image_vertical(self):
- _gdkimlib.gdk_imlib_flip_image_vertical(self._im)
- def rotate_image(self, d):
- _gdkimlib.gdk_imlib_rotate_image(self._im, d)
- def clone_image(self):
- return Image(_obj=_gdkimlib.gdk_imlib_clone_image(self._im))
- def clone_scaled_image(self, width, height):
- return Image(_obj=_gdkimlib.gdk_imlib_clone_scaled_image(
- self._im, width, height))
- def crop_image(self, x, y, w, h):
- _gdkimlib.gdk_imlib_crop_image(self._im, x, y, w, h)
- def save_image(self, file):
- return _gdkimlib.gdk_imlib_save_image(self._im, file)
- def crop_and_clone_image(self, x, y, w, h):
- return Image(_obj=_gdkimlib.gdk_imlib_crop_and_clone_image(
- self._im, x, y, w, h))
- def make_pixmap(self):
- return GtkPixmap(_obj=
- _gdkimlib.gdk_imlib_make_pixmap(self._im))
- def get_pixmap(self):
- return _gdkimlib.gdk_imlib_get_pixmap(self._im)
-
- def create_image_from_data(data, alpha, width, height):
- # alpha can be None
- return Image(_obj=_gdkimlib.gdk_imlib_create_image_from_data(
- data, alpha, width, height))
-
- def create_image_from_drawable(drawable, mask, x, y, width, height):
- return Image(_obj=_gdkimlib.gdk_imlib_create_image_from_drawable(
- drawable, mask, x, y, width, height))
-
- def get_render_type():
- return _gdkimlib.gdk_imlib_get_render_type()
- def set_render_type(rend_type):
- _gdkimlib.gdk_imlib_set_render_type(rend_type)
- def load_colors(file):
- return _gdkimlib.gdk_imlib_load_colors(file)
- def free_colors():
- _gdkimlib.gdk_imlib_free_colors()
- def get_fallback():
- return _gdkimlib.gdk_imlib_get_fallback()
- def set_fallback(fallback):
- _gdkimlib.gdk_imlib_set_fallback(fallback)
- def get_sysconfig():
- return _gdkimlib.gdk_imlib_get_sysconfig()
- def best_color_match(r, g, b):
- return _gdkimlib.gdk_imlib_best_color_match(r, g, b)
-
- # these are to help with apps that use imlib a lot. They push/pop
- # imlib's visual/colormap combination ...
- def push_visual():
- _gdkimlib.gdk_imlib_push_visual()
- def pop_visual():
- _gdkimlib.gdk_imlib_pop_visual()
-
-