3

Magick.NETライブラリを使用して画像 (通常は約 5 ~ 30) の品質/サイズを圧縮しようとしていますが、 ImageOptimizerクラスを使用して、ストリームを使用してLosslessCompress () メソッドを呼び出す方法を本当に理解できません。

  • FileStream または MemoryStream を使用する必要がありますか?
  • 画像ごとにサーバーに一時ファイルを保存/作成してから、圧縮フローを続行する必要がありますか? (パフォーマンス?)
  • 他に何か?

簡単なコード例:

private byte[] ConvertImageToByteArray(IFormFile image)
{
    byte[] result = null;

    // filestream
    using (var fileStream = image.OpenReadStream())

    // memory stream
    using (var memoryStream = new MemoryStream())
    {
        var before = fileStream.Length;

        ImageOptimizer optimizer = new ImageOptimizer();
        optimizer.LosslessCompress(fileStream); // what & how can I pass here stream?

        var after = fileStream.Length;

        // convert to byte[]
        fileStream.CopyTo(memoryStream);
        result = memoryStream.ToArray();
    }

    return result;
}
4

1 に答える 1