正在加载远程图像并从控制器写入
本文关键字:控制器 图像 加载 程图像 | 更新日期: 2023-09-27 18:24:11
我想从控制器返回一个图像,并能够在上面应用我自己的过滤器。
我创建了一个控制器,并希望它成为return Content(Img.BinaryData,"image/jpeg");
不需要视图。
我使用DynamicImage插件来获取远程映像并对其进行一些过滤,但它返回一个System.Windows.Media.Imaging.WriteableBitmap
对象。
这是我得到的最远的数据,但我正试图将其作为二进制数据返回:
using SoundInTheory.DynamicImage.Sources;
var composition = new Composition();
ImageLayer layer = new ImageLayer { Source = new RemoteImageSource { Url = "http://www.google.com/images/srpr/logo4w.png" } };
composition.Layers.Add(layer);
GeneratedImage generatedImage = composition.GenerateImage();
var Img = generatedImage.Image; // returns System.Windows.Media.Imaging.WriteableBitmap
return Content(Img.ToString(),"image/jpeg");
我在这里错过了什么?
试试这个:
var Img = generatedImage.Image
var encoder = new JpegBitmapEncoder();
var bmFrame = BitmapFrame.Create(Img);
encoder.Frames.Add(bmFrame);
encoder.QualityLevel = 100;
var res = new byte[0];
using (var stream = new MemoryStream())
{
encoder.Frames.Add(bmFrame);
encoder.Save(stream);
res = stream.ToArray();
stream.Close();
}
return File(res, "image/jpeg");
(BitmapSource到byte[]的转换取自https://stackoverflow.com/a/11085124/1625737)