使用java处理,我试图制作pgraphics2d对象的深度副本
PGraphics2D pg_render;
pg_render = (PGraphics2D) createGraphics(width, height, P2D);
PGraphics2D pg_postprocd = (PGraphics2D)pg_render.clone();
引发clonenotsupportedexception:
未处理的异常类型clonenotsupportedexception
然而,读了这份文件,克隆似乎已经实现了。
我需要有两个pgraphics2d对象的示例,这样我就可以对其中一个应用后处理效果,并保持另一个干净,以便分析运动矢量等。
1条答案
按热度按时间vxqlmq5t1#
例外情况
这个
PGraphics
类本身不实现Clonable
. 相反,它延伸了PImage
这个类实际上实现了Cloneable
接口。这就是为什么你打电话给
pg_render.clone()
投掷CloneNotSupportedException
,因为pgraphics实际上不支持克隆(但碰巧扩展了一个支持克隆的类)。解决方案
下面的静态方法返回输入pgraphics对象的克隆。它创造了一个新的世界
PGraphics
对象createGraphics()
,克隆样式(样式包括诸如当前填充颜色之类的内容),最后克隆像素缓冲区。代码