我必須創建多個縮略圖,並保存在亞馬遜s3在c#中。我沒有找到只能從源文件中的內存流創建縮略圖的庫。但不能有文件來源,我只有從上傳流,我不希望保存本地文件。什麼是從C#中的內存流(視頻)創建縮略圖的最佳方式或庫?
Thx for ur help!
我必須創建多個縮略圖,並保存在亞馬遜s3在c#中。我沒有找到只能從源文件中的內存流創建縮略圖的庫。但不能有文件來源,我只有從上傳流,我不希望保存本地文件。什麼是從C#中的內存流(視頻)創建縮略圖的最佳方式或庫?
Thx for ur help!
我不認爲圖書館可以從內存流只能從 源文件
真的創建縮略圖?因爲我不需要一個庫 - 我可以用標準的C#來做到這一點。
System.Drawing.Bitmap有一個接受流的構造函數。
但不能有文件源,
其實你可以 - 它被稱爲一個臨時文件,並且在.NET(和Windows)爲一個整體機制。真。
但它不是必需的。閱讀手冊,創建一個位圖(通過將你的字節數組打包到MemoryStream中),它應該可以工作。
簡單的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();
}
}
Thx的答覆,但我想從電影文件創建縮略圖不是一份IMG文件。 – Yvan