none
asp.net 使用 .ashx 动态显示图片,图片失真如何解决? RRS feed

  • 問題

  • 如题:
    代码如下:
                               MemoryStream ms = new MemoryStream();
                                Bitmap newbit = new Bitmap(400, 400);
                                 Image zcpic = Image.FromFile(context.Server.MapPath("~/1.jpg"));
                                Image wkpic = Image.FromFile(context.Server.MapPath("~/2.gif"));          
                                Graphics g = Graphics.FromImage(newbit);
                                g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
                                g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                               
                               
                                g.Clear(Color.Black);  //填充白色
                                g.DrawImage(zcpic, 0, 0, 400, 400);
                                g.DrawImage(wkpic, 0, 0, 400, 400);
                                newbit.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                                context.Response.ContentType = "image/gif";
                                context.Response.StatusCode = 200;
                                context.Response.BinaryWrite(ms.ToArray());

    两张图片合动态生成的这个图片,在前台效果失真.希望高人指点.

    2009年7月8日 上午 08:32

解答

  • 就算是 JPEG->JPEG 對轉也還是會失真,這點我曾在我寫過的自動化縮圖程式中得到驗證 ... 不過我縮的是照片。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年7月15日 上午 02:18
    2009年7月9日 上午 03:54
    版主

所有回覆

  • 去找尋其他廠商發展的 Image Processing 函式庫,內建的函式庫處理本來就會有失真的狀況...
    小人物一枚。
    2009年7月8日 上午 08:43
    版主
  • 是不是寫錯了?
    圖存成jpeg
    可是http在輸出時又指定成gif?

    關於.ashx 动态显示图片
    我想失真的部分應該還可以接受吧
    你可以看看我這個

    http://www.player.idv.tw/prog/index.php/ImageServices

    player
    2009年7月8日 下午 04:25
  • 就算是 JPEG->JPEG 對轉也還是會失真,這點我曾在我寫過的自動化縮圖程式中得到驗證 ... 不過我縮的是照片。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年7月15日 上午 02:18
    2009年7月9日 上午 03:54
    版主
  • 谢谢你的帮忙.后来我把它改生成PNG格式的了.

    我想再请教一下.我用 .ashx 动态生成一个png图像.如何能让它在IE6下面透明呢?本来我是想,只要能生成透明图像就行了的.可是GIF生出来是黑色的.没办法,只能改成PNG的了. 现在PNG有IE6下有灰色的背景,不知道怎么去掉.网上有那个iepngfix.zip或使用css 滤镜 ,可是这个在我这里行不通.对于静态的图片还可以.期待您的解答..  再次感谢!

    2009年7月10日 上午 04:29