c#中没有高质量图像的压缩图像

时间:2012-08-25 16:04:25

标签: c# image compression

我不需要高质量的图像。我将使用套接字发送此图像,因此我需要尽可能小的图像我需要一种压缩图像的方法

    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;
    }

1 个答案:

答案 0 :(得分:1)

穆塔兹,

我曾经在一些图像处理项目上工作过。该项目需要压缩/解压缩图像。您有两种选择可以做您想做的事情: 1)您可以自己编写算法。

2)您可以使用库进行图像的压缩/解压缩。 如果要使用库,还必须选择: 答 - 您可以使用互联网上提供的开源库和文章,如下所示: http://www.codeproject.com/Articles/4769/In-Memory-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属性可以设置文件大小。

在我的事业中,我们决定使用商业工具包,因为它为我们提供了更多的功能,更好的质量和更好的性能。