/usr/share/pyshared/pgm/utils/image.py is in python-pgm 0.3.12-2.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | # -*- mode: python; coding: utf-8 -*-
#
# Pigment Python tools
#
# Copyright © 2006, 2007, 2008 Fluendo Embedded S.L.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
"""
Pigment image utility module
"""
import cairo, array
import pgm
def get_height_from_par(img):
par = img.aspect_ratio[0] / float(img.aspect_ratio[1])
if par:
height = img.width / par
else:
height = img.height
return height
def get_width_from_par(img):
if img.aspect_ratio[0]:
par = img.aspect_ratio[1] / float(img.aspect_ratio[0])
width = img.height / par
else:
width = img.width
return width
def cairo_gradient(png_path, image, gradient_stop):
image_surface = cairo.ImageSurface.create_from_png(png_path)
width = image_surface.get_width()
height = image_surface.get_height()
data = array.array('c', chr(0) * width * height * 4)
dest_surface = cairo.ImageSurface.create_for_data(data, cairo.FORMAT_ARGB32,
width, height, width * 4)
context = cairo.Context(dest_surface)
context.set_source_surface(image_surface)
context.scale(width, height)
gradient = cairo.LinearGradient (0.0, 0.0, 0.0, 1.0)
gradient.add_color_stop_rgba(gradient_stop, 0, 0, 0, 0)
gradient.add_color_stop_rgba(1, 0, 0, 0, 1)
context.mask(gradient)
image.set_from_buffer(pgm.IMAGE_BGRA, width, height, width*4,
width*height*4, data.tostring())
|