2
我想將優化的圖像上傳到亞馬遜。如何將ImageCodecInfo轉換爲字節[]或流
因此,我發現這個article解釋瞭如何優化壓縮級別的圖像。
問題是此示例將映像保存到磁盤,我需要將其保存到Amazon存儲。
我有這樣的代碼:
public static ImageCodecInfo OptimizeImage(Image image, string fileName, long compression, string type)
{
var encoderParams = new EncoderParameters(1)
{
Param = {[0] = new EncoderParameter(Encoder.Quality, compression)}
};
return GetEncoderInfo(type);
}
private static ImageCodecInfo GetEncoderInfo(string mime_type)
{
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
for (int i = 0; i <= encoders.Length; i++)
{
if (encoders[i].MimeType == mime_type)
return encoders[i];
}
return null;
}
我應該有一個Stream
或byte[]
對象,以便將其發送到UploadImageToAmazon
方法參數。
所以,我有一個圖像對象和它的ImageCodecInfo,我怎麼能把它轉換成Stream
或byte[]
?
或者,如果你可以建議我如何優化圖像並將它們上傳到亞馬遜也會很好。
謝謝。
@Misha,看看在鏈接文章中的'image.Save'行。可以使用'MemoryStream'來代替傳入文件名作爲第一個參數。 – David
@David我無法使用Save方法,因爲我想將它保存到Amazon而不是本地。或者我錯過了什麼?我可以使用這種方法將圖像直接保存到亞馬遜? –
@Misha,您將使用常規的「保存」方法保存到「MemoryStream」中。通過使用'MemoryStream',什麼都不會被保存到磁盤。然後,您可以使用'MemoryStream'上的'ToArray'方法來獲取要上傳到Amazon的數據。 – David