我必须创建多个缩略图并在c#中保存在amazon s3上。我找不到可以从源文件中仅从内存流创建缩略图的库。但是没有文件来源,我只有上传的流,我不想保存localy文件。
谢谢你的帮助!
答案 0 :(得分:3)
简单的c#代码可以为您完成此操作。您可以从字节数组创建缩略图。 首先通过以下代码将内存流对象转换为字节数组
byte[] bytes = memoryStream.ToArray();
然后您可以使用以下方法
public byte[] MakeThumbnail(byte[] myImage, int thumbWidth, int thumbHeight)
{
using (MemoryStream ms = new MemoryStream())
using (Image thumbnail = Image.FromStream(new MemoryStream(myImage)).GetThumbnailImage(thumbWidth, thumbHeight, null, new IntPtr()))
{
thumbnail.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
}
答案 1 :(得分:0)
我找不到只能从内存流创建缩略图的库 源文件
真的?因为我不需要一个库 - 我可以使用标准C#。
System.Drawing.Bitmap有一个接受流的构造函数。
但无法拥有文件来源,
实际上你可以 - 它被称为临时文件,在.NET(和windows)中有一个完整的机制。真。
但不需要它。阅读手册,创建一个位图(通过将您的字节数组打包到MemoryStream中)它应该可以工作。