-2

非常に高品質の画像は必要ありません。この画像をソケットで送信するので、この画像をできるだけ小さくする必要があります画像を圧縮する方法が必要です

    private void button1_Click_1(object sender, EventArgs e)
    {
        OpenFileDialog Open_File = new OpenFileDialog();
        if (Open_File.ShowDialog() == DialogResult.OK)
        {
            FileStream fileStream = new FileStream(Open_File.FileName, FileMode.Open, FileAccess.Read);
            int length = (int)fileStream.Length;
            byte[] buffer = new byte[length];
            fileStream.Read(buffer, 0, length);
            Image x = byteArrayToImage(buffer);//this image I want to compression
            //.............................
        }
    }

    public Image byteArrayToImage(byte[] byteArrayIn)
    {
        MemoryStream ms = new MemoryStream(byteArrayIn);
        Image returnImage = Image.FromStream(ms);
        return returnImage;
    }
4

1 に答える 1

1

モタズ、

しばらく前に画像処理プロジェクトに取り組みました。このプロジェクトでは、画像の圧縮/解凍が必要でした。やりたいことを実行するには、次の 2 つのオプションがあります。1) アルゴリズムを自分で作成できます。

2) 画像の圧縮/解凍にライブラリを使用できます。ライブラリを使用する場合は、オプションも必要です。A- 次のようなインターネットで入手可能なオープン ソース ライブラリと記事を使用できます 。 -Image-Compression または、Aforge などのライブラリを使用できます

B- 品質係数を変更するだけで圧縮率を上げることができる、leadtools sdk などの商用ライブラリを使用できます。また、j2k 形式の場合、画像のサイズを設定できます。コード サンプル: 次のリンクを参照してください: 品質係数について: www.leadtools.com/help/leadtools/v175/dh/co/leadtools.codecs~leadtools.codecs.codecspngoptions.html#Example_CS http://www.leadtools .com/help/leadtools/v175/dh/co/leadtools.codecs~leadtools.codecs.codecsjpegoptions.html#Example_CS J2K ファイル サイズの設定: www.leadtools.com/help/leadtools/v175/dh/co/ leadtools.codecs~leadtools.codecs.codecsjpeg2000options.html#Example_CS TargetFileSize プロパティを使用して、ファイル サイズを設定できます。

私の主張では、より多くの機能、より良い品質、より優れたパフォーマンスが得られたので、商用ツールキットを使用することにしました。

于 2012-08-28T12:35:05.717 に答える