Question

Quand je dessine une chaîne dans un tampon, la sortie résultante est pas lissées la façon dont je me attends. Ce code illustre le problème ... il suffit de mettre cela dans les Form1.cs d'un projet de dispositif intelligent standard:

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);
}

Par contre, si je dessine simplement la chaîne dans l'objet graphique qui a été passé avec le PaintEventArgs, il rend en ClearType tout comme je pense.

Je me dis que je dois créer mon tampon graphique d'une manière qui le rend utiliser le lissage des polices, mais je ne vois pas une façon de le faire.

Était-ce utile?

La solution

Il s'avère avoir été un problème simple. En supprimant l'PixelFormat.Format32bppRgb il a bien fonctionné. On dirait que vous devez vous assurer que vos tampons ont les mêmes formats de pixels ...

Autres conseils

Définissez la propriété SmoothingMode de votre objet Graphics:

g.SmoothingMode = SmoothingMode.AntiAlias;

Vous devez utiliser gdiplus.dll (il existe quelques emballages pour cela), mais il est uniquement disponible sur Windows Mobile 6 Professional (non standard).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top