小弟碰到这样一个问题:
    流程如下:
        将一个图片分割成很多block,再根据要求压缩某些block,压缩后的文件传输到client,
解压,然后在对应的位置显示出来。但是在解压的时候有点搞不清了,中间的文件格式如果用jpeg的
话,怎么解压?比如说压缩前用bmp,压缩后用什么格式的文件传输,解压怎么解,C#中解压的示例代码
很少,不知哪位仁兄肯帮帮小弟?
    先谢谢了!

解决方案 »

  1.   

    '压缩图片为指定的MIIE格式GetEncoderInfo("image/jpeg")
        'GetEncoderInfo("image/jpeg")=System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders(1)
        Function GetEncoderInfo(ByVal mimeType As String) As System.Drawing.Imaging.ImageCodecInfo
            Dim i As Integer
            Dim encoders As System.Drawing.Imaging.ImageCodecInfo()
            encoders = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders()
            For i = 0 To encoders.Length - 1
                If encoders(i).MimeType = mimeType Then
                    Return encoders(i)
                End If
            Next
        End Function
      

  2.   

    '压缩图片,ImgZl为图片压缩质量0-100
                Dim ImgZl As Integer = 88
                Dim ICI As System.Drawing.Imaging.ImageCodecInfo = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders(1)
                Dim EP As System.Drawing.Imaging.EncoderParameters = New System.Drawing.Imaging.EncoderParameters(1)
                EP.Param(0) = New System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, ImgZl)
      

  3.   

    to 将一个图片分割成很多block,再根据要求压缩某些block,压缩后的文件传输到client,
    解压,然后在对应的位置显示出来。就这个流程而言,不是纯粹的图形编码转换。
    如果采用bmp到jpeg这种转换方式,这是一种失码率的转换,因此再从jpeg转向bmp会部分失真(很多转换工具在此操作的时候增加了修补算法)。如果你仅仅为了传输而进行压缩,可以不用考虑编码转换的方式。
      

  4.   

    to liujiayu10(活着就好):
       你用jpeg编码器来压缩,压缩参数按Quality,但是如果以jpeg保存,那就不存在解码的问题了,能不能以流的形式传输,再解码?
      

  5.   

    to Knight94(愚翁):
       请问jpeg如果在WinCE上显示的话,是否不需要我们在代码里面指定用何种解码器而直接显示?那么在缓存里面是什么格式?Bitmap?
      

  6.   

    to 兄弟们:
       help me!!!
      

  7.   

    to 请问jpeg如果在WinCE上显示的话,是否不需要我们在代码里面指定用何种解码器而直接显示?可以直接显示。
      

  8.   

    to Knight94(愚翁):
       那就是说系统内置jpeg的解码器了,它在显存里面的数据什么形式?如果用directdraw去操作该数据块,一帧一帧的去刷新,即动态的表现出来的话,操作的对象是Bitmap形式的吗?