2014-09-25 57 views
3
for (int i = 0; i < image1Width; i++) 
{ 
    for (int j = 0; j < image1Height; j++) 
    { 
    if (image1.getPixelReader().getColor(i, j) != image2.getPixelReader().getColor(i, j)) return false; 
    } 
} 

這就是我目前所擁有的。我傳遞函數兩個Images(javafx.scene.image.Image)。這意味着當圖像相同時,這不應該返回false。不幸的是,當我傳遞相同的圖像時,這返回false。javafx如何測試圖像的平等?

謝謝。

回答

2

你需要

if (!image1.getPixelReader().getColor(i, j).equals(image2.getPixelReader().getColor(i, j))) return false; 

if (image1.getPixelReader().getArgb(i, j) != image2.getPixelReader().getArgb(i, j)) return false; 

第二個版本可能會快一些。

+0

非常感謝。這照顧到了這個問題。有趣的是,比較顏色並不能完成這項工作。 – jjaken 2014-09-25 19:43:46

+0

它應該通過比較顏色來工作,只要你使用正確的等式測試。 – 2014-09-25 19:49:09

+0

對,我明白了。 == /!=比較值的權利?不應該getColor()返回一個值,可以用相同的顏色進行比較?我只是爲什麼== /!=是不夠的。 – jjaken 2014-09-26 18:13:36