将位图转换为字节数组使用C#,是否有更好的方法来转换WindowsBitmap转到byte[]保存到临时文件并使用FileStream?
3 回答
LEATH
TA贡献1936条经验 获得超7个赞
A 内存流
public static class ImageExtensions{
public static byte[] ToByteArray(this Image image, ImageFormat format)
{
using(MemoryStream ms = new MemoryStream())
{
image.Save(ms, format);
return ms.ToArray();
}
}}var image = new Bitmap(10, 10);// Draw your imagebyte[] arr = image.ToByteArray(ImageFormat.Bmp);
ImageConverterMemoryStreamBitmapImageConverterMemoryStream
狐的传说
TA贡献1804条经验 获得超3个赞
public static byte[] BitmapToByteArray(Bitmap bitmap){
BitmapData bmpdata = null;
try
{
bmpdata = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat);
int numbytes = bmpdata.Stride * bitmap.Height;
byte[] bytedata = new byte[numbytes];
IntPtr ptr = bmpdata.Scan0;
Marshal.Copy(ptr, bytedata, 0, numbytes);
return bytedata;
}
finally
{
if (bmpdata != null)
bitmap.UnlockBits(bmpdata);
}}- 3 回答
- 0 关注
- 597 浏览
添加回答
举报
0/150
提交
取消
