JavaFx ImageView

时间:2015-06-04 16:38:43

标签: javafx

如何清除ImageView对象的内容,以便我可以使用PixelWriter对象重绘图像?

由于

e.g。

ImageView tmpView = new ImageView();
WritableImage writableImage = new WritableImage(width, height);
PixelWriter pixelWriter = writableImage.getPixelWriter();
...
tmpView.setImage(writableImage);
...
//draw the first image
...
//clear the contents of tmpView  
//???

//redraw imgView
pixelWriter.setColor(x, y, color);

2 个答案:

答案 0 :(得分:0)

在argb颜色模型中,[].concat(7).map(function (n) { return n * n; }); 表示透明。由于let cols = []; for (let i =0; i <= 7; i++) { cols.push(<div id={i}> ... </div>) } return cols; 创建了0长度new int[n]的数组,并且所有值都已初始化为int,因此以下内容将使所有像素都透明:

n

如果您希望所有像素都是白色(例如),那么您可以使用适当的值填充数组:

0

另一种选择就是创建一个新的pixelWriter.setPixels(0, 0, width, height, PixelFormat.getIntArgbInstance(), new int[width*height], 0, width); 并在图片视图中设置它。

答案 1 :(得分:0)

在不知道原始任务的任何进一步细节的情况下,我在这里使用Canvas而不是Image / ImageView。借助Canvas的绘图功能,您可以轻松地清除该区域,而无需创建可能需要填充颜色值的巨大阵列。