为了将位图转换为base64,我必须将位图转换为图像。当我将图像转换为img.save(ms,img.rawformat)的memorystream;
时,在从屏幕拍摄位图(如Image img=(Image)bitmap;
或Image img=bitmap as Image
)转换图像后,我会得到这条消息,但当我使用本地存储的图像(如Image.Image.fromfile(路径)
)时,它工作得很好。当我不想存储屏幕截图并每次都读一遍这是我尝试过的代码时,我该如何避免这个错误呢
Image img = bitmap as Image;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, img.RawFormat);
string base64 = Convert.ToBase64String(ms.ToArray());
}
实际上,您不必将bitmab
转换为image
,而您可以直接使用base64
对您的bitmab
进行编码
试试看:
using (MemoryStream ms = new MemoryStream())
{
bitmab.Save(ms, ImageFormat.Jpeg); // you can change your image format as you want
byte[] imageBytes = ms.ToArray();
string base64 = Convert.ToBase64String(imageBytes);
}