从Vaadin的图像中获取像素颜色

时间:2014-10-11 11:24:56

标签: image vaadin pixel

我有一张图片,我希望从图像中获取像素颜色。像这样:

image.getPixel(100,100).Color

是否可以在 Vaadin

1 个答案:

答案 0 :(得分:1)

如果您确定com.vaadin.ui.Image.getSource()方法将返回FileResource,您可以使用此代码

FileResource resource = (FileResource) image.getSource();
File file = resource.getSourceFile();
BufferedImage img = ImageIO.read(file);
img.getRGB(0,0);

方法BufferedImage.getRGB()返回表示rgba颜色的整数。您可以使用此Stack Overflow answer中提供的方法提取红色,绿色,蓝色和Alpha值。

假设其他场景(getSource()返回ExternalResource ie)我强烈建议基于GWT Image编写自定义Vaadin组件,该组件在向用户显示内容之前将链接/资源/文件/图像转换为BufferedImage。因此,每次需要时,您都可以从自定义组件中实际获取BufferedImage。