C# GDI - 如何创建多边形(点集)的位图副本
我有一个位图对象(甚至任何其他图像),我正在该位图上绘制一些线条以创建多边形。 绘图后,我需要克隆/复制/剪切选择(基于线条)区域。
我无法使用 bitmap.clone 方法,因为它仅适用于矩形。
我需要某种基于 Point[] 或 GraphicsPath 的克隆实现...
请帮助 GDI/Graphics 新手...:)
更新
我尝试做这样的事情:
Graphics g = pbImage.CreateGraphics();
g.Clip = new Region(path);
Image img = null;
g.DrawImage(img, new Point(0, 0));
你能提供一个代码吗例子?我是 GDI+ 的新手,无法实现您的建议。
我不明白:
另一个缓冲区/临时图形对象
I have a bitmap object (or even any other image) and I'm drawing some lines on this bitmap to create a polygon.
after the drawing I need to clone/copy/cut the selection (based on the lines) area.
I cant use the bitmap.clone method becuase its working only with rectangle.
I need some kind of a clone implementation based on Point[] or GraphicsPath...
Please help new to GDI/Graphics... :)
Update
I tried doing something like this:
Graphics g = pbImage.CreateGraphics();
g.Clip = new Region(path);
Image img = null;
g.DrawImage(img, new Point(0, 0));
Can you provide a code example? I'm new for the GDI+ and I cant implement what you suggested.
I dont understand the:
another buffer/temp graphics object
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Barndon Moretz 解决方案的示例。
An example of Barndon Moretzs solution.
您可以使用 Graphics.Clip 来指定自定义剪切区域(来自 GraphicsPath) 从您的“源”位图/图像创建,然后在另一个缓冲区/临时图形对象上重绘它,这应该会给您带来所需的结果。
这不是最有效的解决方案,但它至少应该让您朝着正确的方向前进。
You can use the Graphics.Clip to specify a custom clipping region (from a GraphicsPath) created from your "source" bitmap/image, then redraw it on another buffer/temp graphics object which should give you the desired result.
This isn't the most efficient solution, but it should at least get you going in the right direction.