打印圖片模糊問題

最近一直在處理打印的相關問題,有人提出來,打印出來的圖片很模糊。

然後自己就分析了一下,爲什麼打印出來的圖片會很模糊。

由於涉及到圖片的縮放,圖片的縮放代碼如下,把先關的參數都設置爲高質量

  public static Bitmap ChangeImgSize(Image bit, int Width, int Height)
        {     
            Bitmap newBitmap = new Bitmap(Width, Height);
            Graphics g = Graphics.FromImage(newBitmap);
            Rectangle newArea = new Rectangle(0, 0, Width, Height);
            g.Clear(Color.Transparent);//這句可能存在問題
            //設置畫布的描繪質量           
            g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
            //防止出現漸變
            //  var imgAtt = new ImageAttributes();
            // imgAtt.SetWrapMode(WrapMode.TileFlipXY);
            g.DrawImage(bit, newArea, 0, 0, bit.Width, bit.Height, GraphicsUnit.Pixel);        
            g.Dispose();      
            return newBitmap;
        }

雖然這樣處理了,但項目上還是有人提出來很模糊。

最終查出來原因,是因爲,原始的圖片不滿足指定的大小,需要反覆縮放,導致每一次縮放都會模糊一點,這些累積的誤差,最後的結果就是打印出來的圖片很模糊。

因此最終的代碼也就很簡單,在縮放的過程中,只改變圖片的寬度和高度,只在實際打印時,縮放一次,這樣就清晰多了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章