Frage

Wenn ich eine Zeichenfolge in einen Puffer zu zeichnen, die resultierende Ausgabe die Art und Weise nicht ein Anti-Aliasing ist ich erwarten würde. Dieser Code zeigt das Problem ... das nur setzen in einem Standard für intelligente Geräte Projekts Form1.cs:

protected override void OnPaint(PaintEventArgs e)
{
  Bitmap buffer = new Bitmap(Width, Height, PixelFormat.Format32bppRgb);
  using(Graphics g = Graphics.FromImage(buffer))
  {
    g.Clear(Color.White);
    g.DrawString("Hello, World", Font, new SolidBrush(Color.Black), 5, 5);
  }
  e.Graphics.DrawImage(buffer, 0, 0);
}

Auf der anderen Seite, wenn ich nur die Zeichenfolge in das Graphics-Objekt zeichnen, die in der PaintEventArgs verabschiedet wurden, es macht in Cleartype wie ich erwarten würde.

Ich denke, ich habe in einer Art und Weise meine Grafikpuffer zu schaffen, die es verwenden, Schriftglättung macht, aber ich sehe keine Möglichkeit, das zu tun.

War es hilfreich?

Lösung

Es stellte sich heraus, um ein einfaches Problem gewesen. Durch das Entfernen der PixelFormat.Format32bppRgb es funktionierte gut. Sieht aus wie Sie benötigen sicher, dass Ihre Puffer haben die gleichen Pixelformate ...

machen

Andere Tipps

Stellen Sie das Smoothing Eigentum Ihres Grafikobjekts:

g.SmoothingMode = SmoothingMode.AntiAlias;

Sie haben gdiplus.dll verwenden (da einige Wrapper für diese vorhanden ist), aber es ist nur auf Windows Mobile 6 Professional (nicht Standard).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top