From ece6d8421a606a67f0552cc19cd79e3f89d47aab Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 5 Jan 2013 23:06:45 +0530 Subject: [PATCH] ... --- src/calibre/ebooks/pdf/render/gradients.py | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/calibre/ebooks/pdf/render/gradients.py diff --git a/src/calibre/ebooks/pdf/render/gradients.py b/src/calibre/ebooks/pdf/render/gradients.py new file mode 100644 index 0000000000..b614ca128e --- /dev/null +++ b/src/calibre/ebooks/pdf/render/gradients.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:fdm=marker:ai +from __future__ import (unicode_literals, division, absolute_import, + print_function) + +__license__ = 'GPL v3' +__copyright__ = '2013, Kovid Goyal ' +__docformat__ = 'restructuredtext en' + +from future_builtins import map + +from PyQt4.Qt import (QPointF) + +from calibre.ebooks.pdf.render.common import Stream + +def generate_linear_gradient_shader(gradient, page_rect, is_transparent=False): + pass + +class LinearGradient(Stream): + + def __init__(self, brush, matrix, pixel_page_width, pixel_page_height): + is_opaque = brush.isOpaque() + gradient = brush.gradient() + inv = matrix.inverted()[0] + + page_rect = tuple(map(inv.map, ( + QPointF(0, 0), QPointF(pixel_page_width, 0), QPointF(0, pixel_page_height), + QPointF(pixel_page_width, pixel_page_height)))) + + shader = generate_linear_gradient_shader(gradient, page_rect) + alpha_shader = None + if not is_opaque: + alpha_shader = generate_linear_gradient_shader(gradient, page_rect, True) + + shader, alpha_shader + +