Nedanstående kod använder jag för att generera ut en bild med bokstaven I. Problemet som jag får är att texten blir suddig och bakgrunden innehåller en mängd pixlar i gråton. Hur får jag till så att texten blir skarp samt att bakgrunden inte har några gråa pixlar? Bilden jag testar med är en bild med helt vit bakgrund. Storleken på bilden är 16x16. Det finns ett flertal properties för Graphics-objektet. Minns inte vad alla heter, men kolla t.ex. Graphics.CompositingQuality. Finns nog 3-4 såna properties att leka med. Dessutom kan du behöva justera kvalitén/kompressionen på jpg:en. Dessa properties har jag testat att sätta men det hjälpte inte. Du tar bort antialias. Men då blir det ju kantigt och jävligt, ser inte varför du skulle vilja göra det... Jag testade att ta bort antialias men jag får ändå en toning på bokstaven. Kör du utan antialias så måste det ha med något annat att göra, förmodligen kompressionen. Ta helt okomprimerat om det går (bmp). jpg är gjort för fotografier med mjöka övergångar mellan pixlarna. Använd ett format anpassat för högkontrastbilder (png,gif,bmp...) Ah förstås:Generera ut en bild med text men texten blir suddig?
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
System.Drawing.Image ImageMap = System.Drawing.Image.FromFile(Server.MapPath("WhiteBox.jpg"));
Graphics G = Graphics.FromImage(ImageMap);
Rectangle Rect = new Rectangle(1, 1, 14, 14);
Font TextStyle = new Font("Verdana", 11F, FontStyle.Regular);
StringFormat Format = new StringFormat();
Format.Alignment = StringAlignment.Center;
Format.LineAlignment = StringAlignment.Center;
GraphicsPath path = new GraphicsPath();
path.AddString("I", TextStyle.FontFamily, (int)TextStyle.Style, TextStyle.Size, Rect, Format);
SolidBrush fgBrush = new SolidBrush(Color.Black);
G.FillPath(fgBrush, path);
ImageMap.Save(Server.MapPath("WhiteBoxWithChar.jpg"));
TextStyle.Dispose();
G.Dispose();
ImageMap.Dispose();
}
}Sv: Generera ut en bild med text men texten blir suddig?
Eller så sparar du bilden som en png istället så slipper du förstörande kompression.Sv:Generera ut en bild med text men texten blir suddig?
G.CompositingQuality = CompositingQuality.HighQuality;
G.SmoothingMode = SmoothingMode.AntiAlias;
G.InterpolationMode = InterpolationMode.HighQualityBicubic;
G.PixelOffsetMode = PixelOffsetMode.HighQuality;
Jag gjorde dock om grundbilden till en gif och då fick jag bort de gråtonade pixlarna. Jag har dock ett problem kvar och det är att bokstaven är en aning tonad. Hur får man bort toningen?Sv: Generera ut en bild med text men texten blir suddig?
Sv:Generera ut en bild med text men texten blir suddig?
Jag har testat följande värden istället:
G.SmoothingMode = SmoothingMode.Default;
G.SmoothingMode = SmoothingMode.None;
G.SmoothingMode = SmoothingMode.HighQuality;
Men inget av dessa fungerar...Sv: Generera ut en bild med text men texten blir suddig?
Sv: Generera ut en bild med text men texten blir suddig?
Sv:Generera ut en bild med text men texten blir suddig?
G.InterpolationMode = InterpolationMode.HighQualityBicubic;
G.PixelOffsetMode = PixelOffsetMode.HighQuality;
Dessa bör sättas till None också.