bee*_*bul 4 c# sql image-scaling asp.net-mvc-2 imageresizer
我有一个简单的MVC2应用程序,它将文件从浏览器上传到MS SQL数据库作为图像blob.
然后我可以用以下结果返回结果:
public FileContentResult ShowPhoto(int id)
{
TemporaryImageUpload tempImageUpload = new TemporaryImageUpload();
tempImageUpload = _service.GetImageData(id) ?? null;
if (tempImageUpload != null)
{
byte[] byteArray = tempImageUpload.TempImageData;
return new FileContentResult (temp, "image/jpeg");
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但是我希望将这些图像重新调整为缩略图和图库大小的视图.这个结果可以做到这一点吗?我一直在玩伟大的imageresizer.net,但似乎想要将图像存储在我想要避免的服务器上.有可能在飞行中这样做吗?
我需要保留原始文件,如果可能的话,不要将图像存储为服务器上的文件.
感谢您的任何指示!
w.b*_*ian 11
ImageResizer.NET允许您将流传递给它以进行大小调整,请参阅托管API使用情况
您使用的方法是:
ImageResizer.ImageBuilder.Current.Build(对象源,对象dest,ResizeSettings设置)
我修改了你的方法以这种方式去做,但它没有经过测试.希望能帮助到你.
public FileContentResult ShowPhoto(int id)
{
TemporaryImageUpload tempImageUpload = new TemporaryImageUpload();
tempImageUpload = _service.GetImageData(id) ?? null;
if (tempImageUpload != null)
{
byte[] byteArray = tempImageUpload.TempImageData;
using(var outStream = new MemoryStream()){
using(var inStream = new MemoryStream(byteArray)){
var settings = new ResizeSettings("maxwidth=200&maxheight=200");
ImageResizer.ImageBuilder.Current.Build(inStream, outStream, settings);
var outBytes = outStream.ToArray();
return new FileContentResult (outBytes, "image/jpeg");
}
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)