2
最適化された画像をAmazonにアップロードします。ImageCodecInfoをbyte []またはStreamに変換する方法
これで、圧縮レベルで画像を最適化する方法について説明した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;
}
私は、パラメータとしてUploadImageToAmazon
方法にそれを送信するために、Stream
またはbyte[]
オブジェクトを持つ必要があります。
私はImageオブジェクトとImageCodecInfoを持っていますが、どのようにStream
またはbyte[]
に変換できますか?
また、画像を最適化してアマゾンにアップロードする方法を教えてもらえればいいでしょう。
ありがとうございました。
@Misha:私は例に提供されているコードをおさらいした場合
リンクされましたリンクされた記事の 'image.Save'行にあります。最初のパラメータとしてファイル名を渡す代わりに、 'MemoryStream'を使うことができます。 – David
@DavidローカルにではなくAmazonに保存したいので、Saveメソッドを使用できません。または私は何かを逃している?この方法を使って画像をAmazonに直接保存することはできますか? –
@Mishaでは、通常の 'Save'メソッドを使用して' MemoryStream'に保存します。 'MemoryStream'を使うと、何もディスクに保存されません。次に、 'MemoryStream'の' ToArray'メソッドを使って、Amazonにアップロードしたいデータを取得することができます。 – David