Graphics.TranslateClip
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;
class KeyholeClipCentered : Form {
GraphicsPath path = new GraphicsPath();
Image image = Image.FromFile("Color.jpg");
public static void Main() {
Application.Run(new KeyholeClipCentered());
}
public KeyholeClipCentered() {
ResizeRedraw = true;
path.AddArc(80, 0, 80, 80, 45, -270);
path.AddLine(70, 180, 170, 180);
}
protected override void OnPaint(PaintEventArgs pea) {
DoPage(pea.Graphics, ForeColor, ClientSize.Width, ClientSize.Height);
}
protected void DoPage(Graphics grfx, Color clr, int cx, int cy) {
grfx.SetClip(path);
RectangleF rectf = path.GetBounds();
int xOffset = (int)((cx - rectf.Width) / 2 - rectf.X);
int yOffset = (int)((cy - rectf.Height) / 2 - rectf.Y);
grfx.TranslateClip(xOffset, yOffset);
grfx.DrawImage(image, xOffset, yOffset, image.Width, image.Height);
}
}
Related examples in the same category
| 1. | Graphics.Clear | | |
| 2. | Graphics.CopyFromScreen | | |
| 3. | Graphics.DashCap | | |
| 4. | Graphics.Dispose() | | |
| 5. | Graphics.DpiX | | |
| 6. | Graphics.DpiY | | |
| 7. | Graphics.DrawArc | | |
| 8. | Graphics.DrawBeziers | | |
| 9. | Graphics.DrawEllipse | | |
| 10. | Graphics.DrawIcon(Icon icon, int x, int y) | | |
| 11. | Graphics.DrawImage(Image i, int x, int y); | | |
| 12. | Graphics.DrawImage(Image img, int x, int y, int width, int height) | | |
| 13. | Graphics.DrawImage(im, rec, recPart, GraphicsUnit.Pixel) | | |
| 14. | Graphics.DrawImage(Image, Points[]) | | |
| 15. | Graphics.DrawLine(Pen p, int x0,int y0, int x1, int y1) | | |
| 16. | Graphics.DrawLine(Pen,Point point1, Point point2) | | |
| 17. | Graphics.DrawLines(Pen pen, Point[] points) | | |
| 18. | Graphics.DrawPie | | |
| 19. | Graphics.DrawRectangle | | |
| 20. | Graphics.DrawRectangles | | |
| 21. | Graphics.DrawString | | |
| 22. | Graphics.EnumerateMetafileProc | | |
| 23. | Graphics.FillClosedCurve | | |
| 24. | Graphics.FillEllipse | | |
| 25. | Graphics.FillEllipse(Brush brush,int x, int y,int width,int height) | | |
| 26. | Graphics.FillPath(Brushes.AliceBlue, myPath); | | |
| 27. | Graphics.FillPolygon | | |
| 28. | Graphics.FillRectangle | | |
| 29. | Graphics.FillRectangles | | |
| 30. | Graphics.FillRegion | | |
| 31. | Graphics.FromHwnd() | | |
| 32. | Graphics.FromImage | | |
| 33. | Graphics.InterpolationMode | | |
| 34. | Graphics.MeasureString | | |
| 35. | Graphics.PageScale | | |
| 36. | Graphics.PageUnit | | |
| 37. | Graphics.PixelOffsetMode | | |
| 38. | Graphics.ReleaseHdc | | |
| 39. | Graphics.RotateTransform | | |
| 40. | Graphics.ScaleTransform | | |
| 41. | Graphics.SetClip | | |
| 42. | Graphics.SetClip(path, (CombineMode)miCombineMode.Index) | | |
| 43. | Graphics.SmoothingMode | | |
| 44. | Graphics.TextRenderingHint | | |
| 45. | Graphics.Transform | | |
| 46. | Graphics.TranslateTransform | | |
| 47. | Graphics.VisibleClipBounds | | |