2012-11-19 93 views
4

我想畫一個解碼JPEG到開羅面... 不過我有點卡住,我不知道如何從油漆解碼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() 

任何幫助將前進非常感謝...

+1

什麼是你想要的目的。你想添加一個JPG圖像到PDF。 –

+0

是的,但使用python:/ – smor

+0

這應該解決您的問題[將圖像放在PDF上](http://stackoverflow.com/q/2925484/1699750) –

回答

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

如果使用cairocffi代替pycairo(所述API是兼容),則cairocffi.pixbuf模塊提供與GDK-PIXBUF集成用於裝載各種圖像格式轉換成開羅。

http://pythonhosted.org/cairocffi/pixbuf.html

(聲明,我是作家。)