我有一个方法
Icon getMoleculeIcon(Molecule mol)
我想测试。这样做的正确方法是什么?我正在考虑检查返回是否为Icon.class或者是否可以使用比较hashCodes。 后者似乎对我好,但我真的不确定。 谢谢你的帮助。
答案 0 :(得分:2)
如果您传递的分子摩尔需要存储在一个文件中或类别中Icon对应的对象,那么您的结果必须很好。
图标是javax.swing接口图标?
如果是这样,如果返回的类型可能是ImageIcon,则必须进行释放。
当你有ImageIcon时,你可以getImage();
当你有Image对象时,你可以使用PixelGrabber类
来玩它另一个有趣的转换是使用BufferedImage http://www.java.net/node/646586
现在当你明白在Java中有太多的类来处理图像时,你有两个图像的像素数组(由你的代码传递确定的参数生成,以及存储在你的类中或由文件是传递特定参数的确定结果。)
您已准备好比较图像。 Pixel by Pixel或大脑密集型方法。
另一种解决方案是使用Icon界面创建对象并定义比较方法
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html
还有其他有趣的建议:
Image Comparison Techniques with Java
https://stackoverflow.com/questions/6971966/how-to-measure-percentage-similarity-between-two-images
有人做了一些很棒的libhttp://mindmeat.blogspot.it/2008/07/java-image-comparison.html
这是一项真正复杂的检查,但它对某些产品非常重要。我不知道你的情况是否合适,以及你是否有足够的时间来完成这项任务。
我希望有用。