2012-01-16 70 views
1

我看了看周圍的方式來加載一個PNG到開羅使用單聲道(C#)庫的結合,但是我得到的最接近的是,在圖書館像cairo_image_surface_create_from_png() C-結合使用。但是,在庫的C#綁定中,我沒有在Cairo.ImageSurface.*下看到任何有用的靜態成員。某處舊文章提到綁定不完整,情況如何?目前我使用Gdk.Image.Pixbuf加載內存(嵌入式)的圖像,但看到GTK +已經轉移到開羅和Windows.Forms的單聲道使用開羅,我認爲開羅的C#結合位至少會足以完成包括圖片加載。我可能錯過了什麼?加載圖像到開羅單

回答

2

我做了這個相當最近。您需要將您的圖像加載到開羅面: -

var icon = new ImageSurface(pngfile); 

然後你可以使用ImageSurface.Show方法來呈現它:

icon.Show(ctx, x, y); 

Mono.Cairo Cookbook page查看更多有用的東西。

+0

感謝。我查看了ImageSurface類的構造函數,他們似乎提供了從byte []創建曲面,因爲我的png作爲資源嵌入(並且像流對象一樣讀取)。接下來我會嘗試一下,但構造函數似乎需要寬度/高度,這應該在PNG的元數據中,我懷疑它可能不像你基於文件系統的解析PNG那樣工作。除此之外,通過文件系統循環,是否有另一種獲得嵌入png進入cairo表面的方​​法,而無需先通過gdk或類似方法解析它?例如直接通過開羅,或儘可能乾淨? – Bill 2012-01-16 10:35:15

+0

@Bill,並不如我所知。你或許可以從資源流中找到png的維度。 – IanNorton 2012-01-16 11:11:03