[英]Working with Image and Bitmap in c#?
我正在开发一个项目,其中包括由管理面板管理的图片库。 我想在管理面板中向管理员显示缩略图,该管理面板处于活动状态并将显示给最终用户。
好。 我在两个参数中将图像存储到db中:ImageData(byte []),ImageMimeType。 所以我想在第一次存储图像时存储图片的缩略图版本。 我找到了一些示例代码来调整和操作此地址链接文本中的图片:
private static Image cropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
此功能将图像作为参数。 但我有ImageData(byte [])。
那么,如何将我的字节数组转换为Image和Image到字节数组?
从流创建图像:
private static Image cropImage(byte[] imgArray, Rectangle cropArea)
{
MemoryStream ms = new MemoryStream(imgArray);
Image img = Image.FromStream(ms);
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
来自字节数组的图像
public Image byteArrayToImage(byte[] byteArray)
{
MemoryStream ms = new MemoryStream(byteArray);
return Image.FromStream(ms);
}
图像到字节数组
public byte[] imageToByteArray(Image image)
{
MemoryStream ms = new MemoryStream();
return image.Save(ms,ImageFormat.Jpeg).ToArray();
}
像这样的东西?
Bitmap bmpImage = new Bitmap(img);
MemoryStream stream = new MemoryStream();
try {
bmpImage.Save(stream, bmpImage.RawFormat);
byte[] bytes = stream.ToArray();
}
finally {
stream.Close();
((IDisposable)stream).Dispose();
}
您也可以从byte []创建MemoryStream,然后从该流中加载Image。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.