在c#中使用图像和位图?
问题描述:
我正在开发一个项目,其中包含一个由管理面板管理的图片库。我想在活动的管理面板中向管理员显示缩略图图像,并将显示给最终用户。在c#中使用图像和位图?
好的。我用两个参数将图像存储在数据库中:ImageData(byte []),ImageMimeType。所以我想在第一次存储图像时存储图片的缩略图版本。 我已经发现了一些示例代码在此ADRESS link text来调整和操作图片:
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 [])。
那么,如何将我的字节数组转换为图像和图像到字节数组?
答
图片从字节数组
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();
}
答
public Image ByteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
实测值here其中也有很多的其他示例
答
创建从一个流中的图像:
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);
}
答
类似这样的事情吗?
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。
如果你要直接举这个例子,你应该参考网页... – Ian 2010-08-04 11:48:51
你是对的,我会添加它 – w69rdy 2010-08-04 12:10:37