Graphics.DrawImage是否检查图像是否在剪辑边界内?

时间:2014-04-23 13:17:07

标签: c#

EG:

Graphics g = Graphics.FromImage(new Bitmap(400,400));
g.DrawImage(something, new Point(-400,-400))

它是否仍会运行绘图代码来绘制图像,还是检查传递给它的Point是否会将图像放入剪贴板的边界(ClipBounds)?

此外,如果有25个图像正在被绘制,那么检查图像是否在边界内是否会导致性能提升?

2 个答案:

答案 0 :(得分:2)

什么是Graphics

  

封装GDI +绘图表面。

什么是表面?它是2d矩形。

什么是矩形?它是由点数限制的点数。

你能在数组之外画一个点吗?否。

因此只会绘制内部边界点?是的。

外面的点会被忽略吗?是的。

自动?自动神奇。

和位图?和位图。

尝试在内部和外部绘制位图,测量时间并亲眼看看!

答案 1 :(得分:0)

最好的方法是尝试一下,IMO。请注意,引用的C#代码仅调用本机方法,并且我没有看到该方法对剪切区域/图像边界的作用。在查看ReactOS的源代码时,无论是否将任何数据复制到实际的目标位图,都会进行大量的操作(例如将源图像数据复制到临时缓冲区)。这并不表示微软会做同样的事情,这就是你应该测试并找出答案的原因。