首先,我想說明的是,我對.NET中的成像名稱空間知之甚少。嘗試將兩個字節數組的圖像數據合併爲一個WPF按鈕位圖
我有兩個字節的圖像數據數組,我想合併成一個WPF按鈕的位圖。我想在C#代碼中做所有這些都是可能的。背景圖片可以是jpeg或png,疊加圖片絕對是帶有透明區域的png。疊加圖像是我想添加到原始圖像中的「已售出」橫幅之一。我有一個函數可以將圖像轉換爲button.background將要處理的東西。
我試過這兩個圖像,它工作得很好。接下來的部分是由於我不熟悉.Net中的圖像處理而讓我難以接受。我已經看到了關於RenderTargetBitmap的一些信息,但是我一直無法弄清楚如何獲得基本/背景位圖來渲染第二個位圖,也許還有另一種方法。這裏是我從之前的編碼器/項目繼承的函數的副本。
我必須採取的字節數組轉換過來的東西,我可以直接分配給button.background:
public static BitmapImage ByteArrayToImageBrush(this byte[] imageData)
{
if (imageData == null || imageData.Length == 0) return null;
var image = new BitmapImage();
using (var mem = new MemoryStream(imageData))
{
mem.Position = 0;
image.BeginInit();
image.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
image.CacheOption = BitmapCacheOption.OnLoad;
image.UriSource = null;
image.StreamSource = mem;
image.EndInit();
}
image.Freeze();
return image;
}
我已經定義,從按鈕調用CategoryButton繼承一個新的類,它有一些其他雜項。屬性。我可以成功地把任何圖片作爲背景的按鈕,當我在代碼中創建的按鈕具有以下內容:
CategoryButton catbtn = new CategoryButton();
catbtn.Background = new ImageBrush(ByteArrayToImageBrush(bgImageByteArray);
// * or *
catbtn.Background = new ImageBrush(ByteArrayToImageBrush(overlayImageByteArray);
所以我知道函數作品不夠好。但是,如何將字節數組或ImageBrush生成爲我可以「添加」/合併第二個覆蓋圖像的東西,然後將其轉換爲可用於按鈕背景的格式?我知道這是一個很大的問題,但我很難過,而且我在試圖弄清楚的時候感到沮喪!
抱歉耽擱...但你給了我正要想辦法的。 ..它的工作方式,我需要非常感謝... – 2014-09-03 13:09:29