2012-05-09 23 views
0

我使用Graphics.DrawString方法在圖像上寫入文本, 但保存圖像後文本質量變得太低。 這個ID我的代碼:在c上繪製字符串後提高圖像質量,在c#

Bitmap bitMapImage = new System.Drawing.Bitmap(Server.MapPath("~/k32.jpg")); 
Graphics graphicImage = Graphics.FromImage(bitMapImage); 
graphicImage.DrawString("string", font, s, new Point(10, 10)); 
graphicImage.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
     graphicImage.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; 
     graphicImage.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; 
     graphicImage.TextContrast = 0; 
Response.ContentType = "image/jpeg"; 
bitMapImage.Save(Server.MapPath("~/k33.jpg"), ImageFormat.Jpeg); 

我怎麼能提高文字質量? 感謝

回答

0

您可以嘗試使用無損圖像格式:

bitMapImage.Save(Server.MapPath("~/k33.png"), ImageFormat.Png); 

或者,如果你真的想與JPEG堅持再您可以嘗試通過參考此調整JPEG壓縮級別MSDN How to: Set JPEG Compression Level

private void VaryQualityLevel() 
{ 
    // Get a bitmap. 
    Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg"); 
    ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg); 

    // Create an Encoder object based on the GUID 
    // for the Quality parameter category. 
    System.Drawing.Imaging.Encoder myEncoder = 
     System.Drawing.Imaging.Encoder.Quality; 

    // Create an EncoderParameters object. 
    // An EncoderParameters object has an array of EncoderParameter 
    // objects. In this case, there is only one 
    // EncoderParameter object in the array. 
    EncoderParameters myEncoderParameters = new EncoderParameters(1); 

    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 100L); 
    myEncoderParameters.Param[0] = myEncoderParameter; 
    bmp1.Save(Server.MapPath("~/k33.jpg"), jgpEncoder, myEncoderParameters); 
} 


private ImageCodecInfo GetEncoder(ImageFormat format) 
{ 

    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); 

    foreach (ImageCodecInfo codec in codecs) 
    { 
     if (codec.FormatID == format.Guid) 
     { 
      return codec; 
     } 
    } 
    return null; 
} 
1

嘗試之前設置消除鋸齒設置在圖像上寫作文