/// ///
C sharp 将byte[]数据转成Bitmap

C sharp 将byte[]数据转成Bitmap

ID:38177453

大小:30.00 KB

页数:4页

时间:2019-05-24

C sharp 将byte[]数据转成Bitmap_第1页
C sharp 将byte[]数据转成Bitmap_第2页
C sharp 将byte[]数据转成Bitmap_第3页
C sharp 将byte[]数据转成Bitmap_第4页
资源描述:

《C sharp 将byte[]数据转成Bitmap》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C#将byte[]数据转成Bitmap ///

///使用byte[]数据,生成256色灰度 BMP位图///////////////       publicstaticBitmapCreateBitmap(byte[]origi

2、nalImageData,intoriginalWidth,intoriginalHeight){//指定8位格式,即256色           BitmapresultBitmap=newBitmap(originalWidth,originalHeight,System.Drawing.Imaging.PixelFormat.Format8bppIndexed);//将该位图存入内存中           MemoryStreamcurImageStream=newMemoryStream();resultBitm

3、ap.Save(curImageStream,System.Drawing.Imaging.ImageFormat.Bmp);curImageStream.Flush();//由于位图数据需要DWORD对齐(4byte倍数),计算需要补位的个数           intcurPadNum=((originalWidth*8+31)/32*4)-originalWidth;//最终生成的位图数据大小           intbitmapDataSize=((originalWidth*8+31)/32*4)*origi

4、nalHeight;//数据部分相对文件开始偏移,具体可以参考位图文件格式           intdataOffset=ReadData(curImageStream,10,4);//改变调色板,因为默认的调色板是32位彩色的,需要修改为256色的调色板           intpaletteStart=54;intpaletteEnd=dataOffset;intcolor=0;for(inti=paletteStart;i

5、tempColor[0]=(byte)color;tempColor[1]=(byte)color;tempColor[2]=(byte)color;tempColor[3]=(byte)0;color++;curImageStream.Position=i;curImageStream.Write(tempColor,0,4);}//最终生成的位图数据,以及大小,高度没有变,宽度需要调整           byte[]destImageData=newbyte[bitmapDataSize];intdestWidth

6、=originalWidth+curPadNum;//生成最终的位图数据,注意的是,位图数据从左到右,从下到上,所以需要颠倒           for(intoriginalRowIndex=originalHeight-1;originalRowIndex>=0;originalRowIndex--){intdestRowIndex=originalHeight-originalRowIndex-1;for(intdataIndex=0;dataIndex

7、时还要注意,新的位图数据的宽度已经变化destWidth,否则会产生错位                   destImageData[destRowIndex*destWidth+dataIndex]=originalImageData[originalRowIndex*originalWidth+dataIndex];}}//将流的Position移到数据段             curImageStream.Position=dataOffset;//将新位图数据写入内存中           curImage

8、Stream.Write(destImageData,0,bitmapDataSize);curImageStream.Flush();//将内存中的位图写入Bitmap对象           resultBitmap=newBitmap(curImageStream);returnresultBitmap;}//

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。