2014-05-18 15 views
3

我需要快速判斷一個Slick2D圖像是否與另一個Slick2D圖像具有相同的像素數據。 .equals()方法沒有完成此操作。有沒有辦法做到這一點?Java Slick2D圖像等於方法

回答

0

試試這個:

public static boolean same(Image i1, Image i2) { 
    return i1.getTexture().getTextureData().equals(i2.getTexture().getTextureData()); 
} 

爲什麼光滑的創作者,不可能擺脫我不知道圖像的像素,但是這可能工作:)

+0

不,這似乎不工作。 – Harrison

+0

您可以嘗試遍歷textureData,逐個檢查每個字節,然後如果不匹配,則返回false,如果它們全部匹配,則返回true。 此外,請確保你在迭代之前檢查它們的大小,因爲如果邊是不同的,它會拋出一個outOfBoundsException異常。 可能看起來像這樣 '爲(INT I = 0; I Rock48

0

如何我已經解決了這個排序的問題是通過檢查每個圖像資源目錄並比較這些目錄?由於.equals()函數會查看對象是否與實例中的變量相同而不是。試試這個:

public static boolean same (Image i1, Image i2) { 
    return i1.getResourceReference().equals(i2.getResourceReference()); 
} 

這比較字符串而不是圖像對象。希望這有助於:)

+0

謝謝,但這不會起作用,因爲圖像是使用各自的圖形對象以編程方式繪製的。 – Harrison