public void Update(Rectangle drawSize, bool SetImage) { if (Initialized == false) { return; } if (SetImage == true) { ImageObj = new Bitmap(mPicBox.Width, mPicBox.Height); } else { ImageObj = new Bitmap(drawSize.Width, drawSize.Height); } using (Graphics g = Graphics.FromImage(ImageObj)) { g.SmoothingMode = SmoothingMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; using (GraphicsPath gp = new GraphicsPath()) { if (BackgroundCorner > 0) { gp.AddRectangleRounded(drawSize, BackgroundCorner); } else { gp.AddRectangle(drawSize); } g.SetClip(gp); } for (int i = DrawOrder.Count - 1; i >= 0; i--) { switch (DrawOrder[i]) { case EDrawOrder.Signatur_Rand: DrawForeground(g, drawSize); break; case EDrawOrder.Custom_Text: DrawCustomString(g, drawSize); break; case EDrawOrder.Charakter_Details: DrawShaiyaDetails(g, drawSize); break; case EDrawOrder.Hintergrund_Image: DrawBackgroundImage(g, drawSize); break; case EDrawOrder.Hintergrund_Überlagerung: DrawBackgroundOverlay(g, drawSize); break; case EDrawOrder.Hintergrund_Verlauf: DrawBackgroundGradient(g, drawSize); break; } } } if (SetImage == false) { return; } mPicBox.Image = ImageObj.Clone() as Image; mPicBox.Invalidate(); ImageObj.Dispose(); }