0

是否有可能使用C#/ WinRT的編程方式增加透明度的WriteableBitmap的在Windows Phone的8.1?做一個WriteableBitmap的Windows Phone中透明8.1 C#編程的WinRT

我在我的項目中引用了WriteableBitmapEx庫,用於圖像大小調整和blitting,這非常有用,它也可能有助於添加透明度或alpha通道/圖層,但文檔不是很全面。

不使用WriteableBitmapEx庫來實現這個方法可能會更好,但是無論什麼作品......我一直在尋找這一段時間,並沒有太多關於基本解決方案的信息。

的想法是,用戶可以選擇圖像或圖形,將其固定到他們的開始屏幕,以及應用程序將使背景色透明...大概白色或黑色,或者甚至通過使用第一X/Y座標圖像背景的顏色。

回答

0

您是否嘗試過使用透明的顏色與你的WriteableBitmapEx?例如,要清除整個位圖使用說明:

writeableBitmap = new WriteableBitmap(200, 200, 96, 96, PixelFormats.Bgra32, null); 
writeableBitmap.Clear(Colors.Transparent); 
+0

這使得整個圖像是透明的。我只想讓一種特定的顏色透明......背景顏色。 – theMaxx

0

如果你想自己編輯特定像素 - 您需要訪問PixelBuffer屬性。我確信WriteableBitmapEx會一直這樣做。我的工具包here也是如此。我現在還記得像素格式,但我認爲它就像ARGB或P-ARGB?我可能困惑在這裏,但基本上你的像素緩衝區是具有數據由4個字節定義的每個像素的像素的所有行的一個數組,所以一個2x2的位圖將有類似ARGBARGBARGBARGB字節,其中每一個字母爲四個像素之一分量值(0-255,0表示無色,255表示所有RGB爲白色)。 R是紅色,G是綠色,B是藍色,A是Alpha - 不透明度或透明度。在P或預倍頻像素格式中,出於性能原因(IIRC),所有RGB值都會乘以Alpha通道值。

你會通過你的所有像素需要循環,並設置ARGB值根據你的規則,以增加透明度,在需要的地方,可能是未預乘和左乘需要RGB。