日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
用Silverlight3的位圖API實(shí)現(xiàn)可寫位圖

Silverlight 3 這次帶來的全新位圖API實(shí)現(xiàn)了如下的三個首要目標(biāo):

◆從無到有創(chuàng)建位圖,以像素為單位

◆在客戶端處理從服務(wù)器或本地加載的圖像

◆從視覺樹到位圖的分區(qū)渲染,以達(dá)成類似于截屏的功能(另外,預(yù)渲染和緩存元素有時也能起到提高性能的作用)

從無到有創(chuàng)建位圖

創(chuàng)建位圖的關(guān)鍵在于System.Windows.Media.Imaging下的WriteableBitmap類。運(yùn)用此類可以創(chuàng)建一個預(yù)先分配到普通圖像元素上的源。

﹤Grid x:Name="LayoutRoot"﹥
﹤Image x:Name="MyBitmap"
Width="200"
Height="200" /﹥
﹤/Grid﹥

以下提供的代碼可以實(shí)現(xiàn)一些很有趣的圖形效果。

private void BuildBitmap()
{
const int imageWidth = 200;
const int imageHeight = 200;

WriteableBitmap b =
new WriteableBitmap(imageWidth, imageHeight,
PixelFormats.Bgr32);

b.Lock();

for (int x = 0; x ﹤ imageWidth; x++)
{
for (int y = 0; y ﹤ imageHeight; y++)
{
// generate a color in Pbgra32 format
byte[] components = new byte[4];
components[0] = (byte)(x % 255); // blue
components[1] = (byte)(y % 255); // green
components[2] = (byte)(x * y % 255); // red
components[3] = 0; // unused

// you could certainly do your own masking here
int pixelValue = BitConverter.ToInt32(components, 0);

// set the pixel value
b[y * imageWidth + x] = pixelValue;
}
}

b.Invalidate();
b.Unlock();

MyBitmap.Source = b;

}


最終成品如下:

可以明顯看出,以上代碼經(jīng)歷了四個流程:鎖定,寫入,無效化,解鎖。這是WPF兼容所需要的。

你也可以修改一個現(xiàn)有的位圖,并渲染該位圖的內(nèi)容控件。

原文:Silverlight 3 – The Bitmap API / WriteableBitmap

作者:Pete Brown

【編輯推薦】

  1. 微軟發(fā)布Silverlight 3首個Beta版
  2. 見微知著 Silverlight 3與Flash橫向比較
  3. Silverlight 3將支持3D圖像和硬件加速

網(wǎng)頁名稱:用Silverlight3的位圖API實(shí)現(xiàn)可寫位圖
鏈接URL:http://www.dlmjj.cn/article/dhspcgp.html