首页 memorystream写下内存提示内存不足

memorystream写下内存提示内存不足

举报
开通vip

memorystream写下内存提示内存不足memorystream写下内存提示内存不足 memorystreamå†?å…?内å??æ??ç?ºå†…å??ä??è?? private Bitmap CreateBitmap(byte[] originalImageData, int originalWidth, int originalHeight) { //指å?š8ä, æ ?å??ï,Œå??256è‰?.old //指å?š32ä, æ ?å? Bitmap resultBitmap = new Bitmap(origin...

memorystream写下内存提示内存不足
memorystream写下内存提示内存不足 memorystreamå†?å…?内å??æ??ç?ºå†…å??ä??è?? private Bitmap CreateBitmap(byte[] originalImageData, int originalWidth, int originalHeight) { //指å?š8ä, æ ?å??ï,Œå??256è‰?.old //指å?š32ä, æ ?å? Bitmap resultBitmap = new Bitmap(originalWidth, originalHeight, System.Drawing.Imaging.PixelFormat.Format24bppRgb); try { //å?†è??ä,?å›,å??å…?内å??ä?? MemoryStream curImageStream = new MemoryStream(); resultBitmap.Save(curImageStream, System.Drawing.Imaging.ImageFormat.Bmp); curImageStream.Flush(); //ç??äº?ä,?å›,æ•?æ??éœ?è??DWORDå??é,?ï,ˆ4byteå??æ•?ï,‰ï,Œè??ç??éœ? è??è??ä,?çš„ä?ªæ•? //int curPadNum = ((originalWidth * 8 + 31) / 32 * 4) - originalWidth; int curPadNum = ((originalWidth * 24 + 31) / 32 * 4) - originalWidth; //æœ?ç?ˆç?Ÿæˆ?çš„ä,?å›,æ•?æ??å??å?? //int bitmapDataSize = ((originalWidth * 8 + 31) / 32 * 4) * originalHeight; int bitmapDataSize = ((originalWidth * 24 + 31) / 32 * 4) * originalHeight; //bitmapDataSize = originalWidth * originalHeight; //æ•?æ??éƒ?分ç›?å??æ?‡ä??å,?å?‹å??ç??ï,Œå…?ä,?å??ä??å?‚è?ƒä,?å›,æ?‡ä??æ ?å? int dataOffset = ReadData(curImageStream, 10, 4); //æ??å??è?ƒè‰?æ??ï,Œå› ä?ºé??è??çš„è?ƒè‰?æ??æ??32ä,?å,?è‰?çš„ï,Œéœ?è??ä??æ??ä?º256è‰?çš„è?ƒè‰?æ?? int paletteStart = 54; int paletteEnd = dataOffset; //int color = 0; //RPG24,ä??éœ?è??è?ƒè‰?æ?? //for (int i = paletteStart; i paletteEnd; i += 4) //{ // byte[] tempColor = new byte[4]; // 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); //} curImageStream.Position = paletteStart; //æœ?ç?ˆç?Ÿæˆ?çš„ä,?å›,æ•?æ??ï,Œä??å?Šå??å??ï,Œé??åº?æ??有å??ï,Œå?,åº?éœ?è?•è?ƒæ•? byte[] destImageData = new byte[bitmapDataSize]; int destWidth = originalWidth + curPadNum; //ç?Ÿæˆ?æœ?ç?ˆçš„ä,?å›,æ•?æ??ï,Œæ??æ„?çš„æ??ï,Œä,?å›,æ•?æ?? ä??å??åˆ?å??ï,Œä??ä?‹åˆ?ä?Šï,Œæ‰?ä??éœ?è??é? å?’ for (int originalRowIndex = originalHeight - 1; originalRowIndex = 0; originalRowIndex--) { int destRowIndex = originalHeight - originalRowIndex - 1; for (int dataIndex = 0; dataIndex originalWidth * 3; dataIndex += 3) { //å?Œæ??è??è??æ??æ„?ï,Œæ??çš„ä,?å›,æ•?æ??çš„å?,åº?å??ç??å??åŒ?dest Widthï,Œå??åˆ?ä,šäº?ç?Ÿé??ä,? destImageData[destRowIndex * destWidth + dataIndex] = originalImageData[originalRowIndex * originalWidth * 3 + dataIndex]; destImageData[destRowIndex * destWidth + dataIndex + 1] = originalImageData[originalRowIndex * originalWidth * 3 + dataIndex + 1]; destImageData[destRowIndex * destWidth + dataIndex + 2] = originalImageData[originalRowIndex * originalWidth * 3 + dataIndex + 2]; } } //å?†æµ?çš„Positionç??åˆ?æ•?æ??æ?µ curImageStream.Position = dataOffset; //å?†æ??ä??å›,æ•?æ??å†?å…?内å??ä?? curImageStream.Write(destImageData, 0, bitmapDataSize); curImageStream.Flush(); //å?†å†…å??ä??çš„ä,?å›,å†?å…?Bitmapå??è?? resultBitmap = new Bitmap(curImageStream);
本文档为【memorystream写下内存提示内存不足】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_003124
暂无简介~
格式:doc
大小:17KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-07
浏览量:43