110,536
社区成员
发帖
与我相关
我的任务
分享
using System.Drawing.Imaging;
//只为得到jpeg的byte[],测试用
FileStream vFileStream = new FileStream(@"c:\temp\temp.jpg",
FileMode.Open, FileAccess.Read);
byte[] jpegBuffer = new byte[vFileStream.Length];
vFileStream.Read(jpegBuffer, 0, jpegBuffer.Length);
vFileStream.Close();
//开始处理,创建jpeg图像
MemoryStream vMemoryStream = new MemoryStream(jpegBuffer);
Image jpeg = Image.FromStream(vMemoryStream);
vMemoryStream.Close();
//vMemoryStream = new MemoryStream();
//jpeg.Save(vMemoryStream, ImageFormat.Bmp); // 此方案会导致异常
//创建bmp图像
Bitmap vBitmap = new Bitmap(jpeg.Width, jpeg.Height);
Graphics vGraphics = Graphics.FromImage(vBitmap); // 使其高宽一致
vGraphics.DrawImage(jpeg, 0, 0); // 贴图
vGraphics.Dispose();
//保存bmp为byte[]
vMemoryStream = new MemoryStream();
vBitmap.Save(vMemoryStream, ImageFormat.Bmp);
byte[] bitmapBuffer = new byte[vMemoryStream.Length];
vMemoryStream.Read(bitmapBuffer, 0, bitmapBuffer.Length);
//bitmapBuffer为所得