我正在尝试将已解码的jpeg绘制到开罗表面...... 但是我有点卡住了,我不知道如何向前推进
import cairo
import Image
path_to_jpeg = "/home/seif/Pictures/prw.jpg"
surface = cairo.PDFSurface ("out.pdf", 1000, 1000)
ctx = cairo.Context (surface)
image = cairo.ImageSurface(cairo.FORMAT_ARGB32, 1000, 1000)
dt = Image.open(path_to_jpeg)
dimage = dt.load()
非常感谢任何帮助...
答案 0 :(得分:3)
这应该可以解决问题。您必须首先将图像转换为png,它似乎是您可以使用的唯一格式。这就是下面代码的一大部分。我建议您查看this question,这对我在下面创建代码有很大帮助。
import Image, StringIO
from cairo import PDFSurface, Context, ImageSurface
pdf = PDFSurface("out.pdf", 1000, 1000)
cr = Context(pdf)
im = Image.open("/home/seif/Pictures/prw.jpg")
buffer = StringIO.StringIO()
im.save(buffer, format="PNG")
buffer.seek(0)
cr.save()
cr.set_source_surface(ImageSurface.create_from_png(buffer))
cr.paint()
答案 1 :(得分:1)
如果使用cairocffi而不是pycairo(API兼容),cairocffi.pixbuf
模块提供与GDK-PixBuf的集成,用于将各种图像格式加载到cairo。
http://pythonhosted.org/cairocffi/pixbuf.html
(免责声明,我是作者。)