2014-05-18 2 views
3

한 Slick2D 이미지에 다른 Slick2D 이미지와 동일한 픽셀 데이터가 있는지 신속하게 알 필요가 있습니다. .equals() 메서드는이를 수행하지 않습니다. 이것을 할 수있는 방법이 있습니까?Java Slick2D Image는 메소드와 동일합니다

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

매끄러운의 제작자가 불가능 내가 더 알고을하지 이미지에서 픽셀을 얻기 위해 만든 이유는,하지만이 작동 할 수 있습니다 :

답변

0

이 시도 문제는 각각의 이미지 리소스 디렉토리를 확인하고 비교하는 것입니다. .equals() 함수는 객체가 동일하면 이 아닌 인스턴스의 변수를 확인합니다. 이것을 시도하십시오 :

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

이것은 이미지 객체보다는 문자열을 비교합니다. 희망이 도움 :)

+0

아니,이 작동하지 않는 것 같습니다. – Harrison

+0

textureData의 반복 처리를 시도해, 각 바이트를 개별적으로 체크해, 일치하지 않는 경우는 false를 돌려 준다. 모두 일치하면 true를 돌려 준다. 반복하기 전에 크기를 확인하십시오. 측면이 다른 경우 outOfBoundsException이 발생합니다. ! { 경우 (i1.getTexture.getTextureData() [I] = i2.getTexture 이 '위해 (.; 난()의 길이를 i1.getTexture.getTextureData Rock48

0

나는 이런 종류의 태클 방법 :

+0

고맙겠지 만 이미지는 각각의 그래픽 개체를 사용하여 프로그래밍 방식으로 그려지기 때문에 작동하지 않습니다. – Harrison

관련 문제