成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Silverlight中實(shí)現(xiàn)WriteableBitmap轉(zhuǎn)為Byte流

開發(fā)
本文將介紹的是Silverlight中,把WriteableBitmap轉(zhuǎn)為Byte流并保存到本地,希望對(duì)大家有所幫助。

在銀光Silverlight中,對(duì)于WriteableBitmap是本文的重點(diǎn)。這里將為大家講解具體的實(shí)現(xiàn)過(guò)程,希望能對(duì)今后的開發(fā)工作有所幫助。

算法核心:對(duì)WriteableBitmap的所有像素點(diǎn)做循環(huán)遍歷,然后存入Byte[]數(shù)組中,再轉(zhuǎn)換為MemoryStream輸出,下面是代碼:

  1. Code  
  2. private void ButtonSave_Click(object sender, RoutedEventArgs e)  
  3.         {  
  4.             WriteableBitmap bitmap = new WriteableBitmap(MyStackPanel, null);  
  5.  
  6.             if (bitmap != null)  
  7.             {  
  8.                 SaveFileDialog saveDlg = new SaveFileDialog();  
  9.                 saveDlg.Filter = "JPEG Files (*.jpeg)|*.jpeg";  
  10.                 saveDlg.DefaultExt = ".jpeg";  
  11.  
  12.                 if ((bool)saveDlg.ShowDialog())  
  13.                 {  
  14.                     using (Stream fs = saveDlg.OpenFile())  
  15.                     {  
  16.                         SaveToFile(bitmap, fs);  
  17.                         MessageBox.Show("File save Complete");  
  18.                     }  
  19.                 }  
  20.             }  
  21.         }  
  22.  
  23.         private static void SaveToFile(WriteableBitmap bitmap, Stream fs)  
  24.         {  
  25.             int width = bitmap.PixelWidth;  
  26.             int height = bitmap.PixelHeight;  
  27.             int bands = 3;  
  28.             byte[][,] raster = new byte[bands][,];  
  29.  
  30.             for (int i = 0; i < bands; i++)  
  31.             {  
  32.                 raster[i] = new byte[width, height];  
  33.             }  
  34.  
  35.             for (int row = 0; row < height; row++)  
  36.             {  
  37.                 for (int column = 0; column < width; column++)  
  38.                 {  
  39.                     int pixel = bitmap.Pixels[width * row + column];  
  40.                     raster[0][column, row] = (byte)(pixel >> 16);  
  41.                     raster[1][column, row] = (byte)(pixel >> 8);  
  42.                     raster[2][column, row] = (byte)pixel;  
  43.                 }  
  44.  
  45.             }  
  46.  
  47.             FluxJpeg.Core.ColorModel model = new FluxJpeg.Core.ColorModel { colorspace = FluxJpeg.Core.ColorSpace.RGB };  
  48.             FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);  
  49.  
  50.  
  51.             //Encode the Image as a JPEG  
  52.             MemoryStream stream = new MemoryStream();  
  53.             FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, 100, stream);  
  54.             encoder.Encode();  
  55.  
  56.             //Back to the start  
  57.             stream.Seek(0, SeekOrigin.Begin);  
  58.  
  59.             //Get teh Bytes and write them to the stream  
  60.             byte[] binaryData = new Byte[stream.Length];  
  61.             long bytesRead = stream.Read(binaryData, 0, (int)stream.Length);  
  62.             fs.Write(binaryData, 0, binaryData.Length);  
  63.         } 

我對(duì)其中的這一段尤其不滿意,自覺(jué)是性能的關(guān)鍵,有沒(méi)有更高效的算法快速?gòu)腤riteableBitmap直接得到像素的Byte[]數(shù)組?

  1. Code  
  2. for (int row = 0; row < height; row++)  
  3.             {  
  4.                 for (int column = 0; column < width; column++)  
  5.                 {  
  6.                     int pixel = bitmap.Pixels[width * row + column];  
  7.                     raster[0][column, row] = (byte)(pixel >> 16);  
  8.                     raster[1][column, row] = (byte)(pixel >> 8);  
  9.                     raster[2][column, row] = (byte)pixel;  
  10.                 }  
  11.  
  12.             } 

下面為演示代碼,需要引入FJCore,如果您再編譯的時(shí)候發(fā)現(xiàn)路徑不正確,請(qǐng)出新引入一下,我已經(jīng)那個(gè)把FJCoer放置在了壓縮包中的refer文件夾下。

原文標(biāo)題:Silverlight中,把WriteableBitmap轉(zhuǎn)為Byte流并保存到本地

鏈接:http://www.cnblogs.com/zhangxuguang2007/archive/2009/11/05/1596721.html

責(zé)任編輯:彭凡 來(lái)源: 博客園
相關(guān)推薦

2009-03-19 15:52:50

Silverlight位圖WPF

2025-02-12 11:06:24

Go函數(shù)MultiBytes

2010-01-04 17:42:50

SilverLight

2009-11-18 11:33:23

Silverlight

2009-12-30 18:28:56

Silverlight

2009-12-31 11:23:23

Silverlight

2009-12-30 15:42:08

Silverlight

2009-09-22 16:14:41

ViewBox組件

2009-12-29 17:34:52

Silverlight

2009-12-29 18:02:26

SilverLight

2009-06-01 11:41:53

SilverlightSilverlight拖放

2009-12-30 13:51:43

Silverlight

2010-01-04 17:29:00

Silverlight

2009-12-29 17:47:36

Silverlight

2009-03-27 09:48:56

SnapFlowWaaS工作流

2009-12-30 16:37:42

Silverlight

2009-12-29 18:09:00

Silverlight

2009-12-29 18:34:21

Silverlight

2009-12-30 15:26:02

Silverlight

2009-12-30 16:10:10

Silverlight
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 第四色狠狠 | 精品国产91久久久久久 | 亚洲精品区 | 福利网站导航 | 日韩三级在线观看 | a级片播放 | 欧美一区二区免费电影 | 天天草天天干天天 | 国产一级电影在线 | 欧美极品在线视频 | 91在线观看 | 国产成人精品免费视频大全最热 | 亚洲一区二区三区在线播放 | 久久久噜噜噜www成人网 | 国产真实精品久久二三区 | 成人精品一区二区 | 亚洲精品国产偷自在线观看 | 国产伊人久久久 | 亚洲精品一区二区在线 | 欧美一级片免费看 | 国产目拍亚洲精品99久久精品 | 亚洲精品久久久久久一区二区 | av手机在线 | 二区av| 成人在线视| 国产一级在线视频 | 久久精品视频一区二区 | 亚洲福利| 在线视频一区二区三区 | 综合久久综合久久 | 欧美日韩在线观看一区二区三区 | 日韩快播电影 | 精品日韩在线 | 99综合| 亚洲成人福利视频 | 视频三区| 九色在线观看 | 国产激情小视频 | 激情久久久久 | 国产欧美日韩一区二区三区在线 | 日韩1区|