Schnelles Imaging mit PARGB
Wenn Sie eine große Anzahl von Images mit GDI+ auf den Bildschirm bringen, kann es zu Performance-Engpassen kommen, wenn deren Farbtiefe 32 Bit unterschreitet. Der Grund hierfür ist, dass diese zuvor automatisch in das PARGB-Format (pre-multiplied alpha blended RGB) konvertiert werden.
Wenn Sie beispielsweise eine Animation erzeugen, in dem Sie nacheinander mehrere GIF-Bilder auf den Bildschirm bringen, können Sie die Performance optimieren, in dem Sie diese vorher in das PARGB-Format wandeln. Die folgende Methode demonstriert die Vorgehensweise:
private void ConvertImage2PARGB(Image img)
{
Bitmap bmp = img as Bitmap;
Bitmap newImg = new Bitmap(bmp.Width, bmp.Height,
System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
using (Graphic g = Graphic.FromImage(newImg);
{
g.DrawImage(bmp, new Rectangle(0,0,bmp.Width,bmp.Height));
}
img = newImg;
}
Wenn Sie beispielsweise eine Animation erzeugen, in dem Sie nacheinander mehrere GIF-Bilder auf den Bildschirm bringen, können Sie die Performance optimieren, in dem Sie diese vorher in das PARGB-Format wandeln. Die folgende Methode demonstriert die Vorgehensweise:
private void ConvertImage2PARGB(Image img)
{
Bitmap bmp = img as Bitmap;
Bitmap newImg = new Bitmap(bmp.Width, bmp.Height,
System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
using (Graphic g = Graphic.FromImage(newImg);
{
g.DrawImage(bmp, new Rectangle(0,0,bmp.Width,bmp.Height));
}
img = newImg;
}
0 Comments:
Kommentar veröffentlichen
<< Home