在c#中使用图像和位图?

我正在开发一个项目,其中包括由管理面板管理的图片库。 我想在管理面板中向管理员显示缩略图,该管理面板处于活动状态并将显示给最终用户。

好。 我将图像存储在数据库中的两个参数: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); } 

此function将图像作为参数。 但我有ImageData(byte [])。

那么,如何将我的字节数组转换为Image和Image为字节数组?

字节数组中的图像

 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(); } 

从流创建图像:

 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[] byteArrayIn) { MemoryStream ms = new MemoryStream(byteArrayIn); Image returnImage = Image.FromStream(ms); return returnImage; } 

在这里找到了其他很多例子

像这样的东西?

 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。