请问如何对JPG再次压缩,最好是无损而且压缩比率较高!比如1K图片压缩后只有几百字节.

解决方案 »

  1.   

    好像不好办,rar压jpg都只能压下去一点。
      

  2.   

    如果是无损的  我想应该不能再压了. jpg的编码已经很效率了.
      

  3.   

    下面这个例子是将图片拉伸的代码,但是跟你的没有关系 你只需要把图片载入改下质量就好,质量由0~100 越低越差 我在红色部分给你表明了,时间原因 你就自己改改吧  我就不多弄了代码如下:(将图象变为200*200)   
        
      GdiplusStartupInput   gdiplusStartupInput;   
            ULONG_PTR   gdiplusToken;   
            GdiplusStartup(&gdiplusToken,   &gdiplusStartupInput,   NULL);   
        
      CLSID   encoderClsid;   
      EncoderParameters   encoderParameters;   
      ULONG   quality;   
      Status   stat;   
      Image   image(L"1.jpg");   
      Bitmap   bitmap(200,   200,   PixelFormat32bppARGB);   
      Graphics   graph(&bitmap);   
      graph.DrawImage(&image,   Rect(0,0,200,200));   
      GetEncoderClsid(L"image/jpeg",   &encoderClsid);   
      //构造编码参数列表   
      //数组中只包含一个EncoderParameter对象   
      encoderParameters.Count   =   1;   
      encoderParameters.Parameter[0].Guid   =   EncoderQuality;   
      //参数类型为LONG   
      encoderParameters.Parameter[0].Type   =   EncoderParameterValueTypeLong;   
      //只设置一个参数   
      encoderParameters.Parameter[0].NumberOfValues   =   1;   
        
        
      //设置JPEG图片质量为最好   
      quality   =   100;  
     
      encoderParameters.Parameter[0].Value   =   &quality;   
      stat   =   bitmap.Save(L"1_2.jpg",   &encoderClsid,   &encoderParameters);   
      GdiplusShutdown(gdiplusToken);   
      
      

  4.   

    可以用JPEG2000试试,比JPEG效果好。用的是小波。
      

  5.   

    没有可能,因为已经进行了哈夫曼编码,那个已经是最优的了,再进行其它编码说不定越压越大呢
    JPEG2000主要是EBCOT算法,小波变换和算术编码,从数据变换的时候就超过了JPEG,算术编码也比哈夫曼编码少用一个码表