2016-06-27 32 views
0

有沒有辦法從文件加載SVG然後渲染到開羅畫布?理想的情況是這樣的:從文件渲染SVG到Julia的開羅畫布

image = read_from_svg("my.svg") 
set_source_surface(cr, image, 0, 0) 
paint(cr) 
+2

[負載開羅SVG]的可能的複製(http://stackoverflow.com/questions/21152068/load-svg-with-cairo) – oldtechaa

+0

參見https://開頭計算器。 com/questions/13709243/create-cairo-path-from-svg-file?rq = 1 – oldtechaa

+0

感謝您的評論。聽起來好像Julia atm沒有內置的方法。可能通過C++綁定調用librsvg。 CairoSVG的東西看起來不像它會給我一個內部對象,我可以調用set_source_surface(),並且我不想在外部轉換爲PNG,然後加載它。 – Mageek

回答

1

還有就是Rsvg.jl包包裝了rsvg庫。該包裝可以與Pkg.add("Rsvg")一起安裝。您可能需要對本地Cairo和Rsvg庫的安裝進行故障排除 - 該軟件包將自動嘗試執行此操作,但基於多種不同配置,這是一個難題。

使用該軟件包,似乎可以做你想做的事。從包中的自述:

using Rsvg 
using Cairo 

filename_in = "a4.svg" 

r = Rsvg.handle_new_from_file(filename_in); 
d = Rsvg.handle_get_dimensions(r); 
cs = Cairo.CairoImageSurface(d.width,d.height,Cairo.FORMAT_ARGB32); 
c = Cairo.CairoContext(cs); 
Rsvg.handle_render_cairo(c,r);