保存为JPG格式比较清晰但保存为GIF后就不是很清晰了
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;用了以上语句,也没有任何改善,有什么办法吗?谢谢!

解决方案 »

  1.   

    GIF最多支持256种色彩,文件格式决定的,没办法
      

  2.   

    如果是jpg的话 可以编码处理一下C#版本:private void MakeSLT(string oldImagePath,string newImagePath)
      {
       //oldImagePath -原图地址 newImagePath 生成缩略图地址
       int width = 150;//缩略图的宽度
       int height = 112;// 缩略图的高度
       int level = 100; //缩略图的质量 1-100的范围   System.Drawing.Image oldimage = System.Drawing.Image.FromFile(oldImagePath);
       System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
       Bitmap bm=new Bitmap(thumbnailImage);    //处理JPG质量的函数
       ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders(); 
       ImageCodecInfo ici=null;
       foreach(ImageCodecInfo codec in codecs)
       {
        if(codec.MimeType=="image/jpeg")
         ici=codec;
       }
       EncoderParameters ep=new EncoderParameters();
       ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)level);   bm.Save(newImagePath,ici,ep);
      }VB.NET版本:Sub makeSLT(ByVal oldImagePath As String,ByVal newImagePath As String)       Dim oimg As System.Drawing.Image = System.Drawing.Image.FromFile(oldImagePath)
          Dim nimg As System.Drawing.Image = oimg.GetThumbnailImage(wids, heis, Nothing, IntPtr.Zero)
            Response.Clear()
            Dim outs As Bitmap = New Bitmap(nimg)
            '处理图像质量
            Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()
            Dim ici As ImageCodecInfo ' = System.DBNull
            For Each codec As ImageCodecInfo In codecs
                If codec.MimeType = "image/jpeg" Then
                    ici = codec
                End If
            Next        Dim ep As EncoderParameters = New EncoderParameters
            ep.Param(0) = New EncoderParameter(System.Drawing.Imaging.Encoder.Quality, CLng(100))
            outs.Save(newImagePath, ici, ep)End Sub
      

  3.   

    1.gif,2.gif
    合成为3.gif但3.gif,比1.gif的效果差都是256色,但合成后效果就是差一些
      

  4.   

    每个gif都有自己的调色板,只能保存256种不同的颜色
    两个gif要是每个都有256种颜色,合在一起就可能超过256种颜色了,保存为256色的gif肯定效果要差一些