Есть ли простой способ сравнить экземпляры BufferedImage?

Я работаю над частью приложения Java, которое принимает изображение в виде массива байтов, считывает его в экземпляр java.awt.image.BufferedImageи передает его в сторонняя библиотека для обработки.

Для модульного теста я хочу взять изображение (из файла на диске) и утверждать, что оно равно тому же изображению, которое было обработано кодом.

  • Мой ожидаемыйBufferedImageсчитывается из PNG-файла на диске с помощью ImageIO.read(URL).
  • Мой код testсчитывает тот же файл в BufferedImageи записывает его в массив байтов в формате PNG для предоставления тестируемой системе.

Когда тестируемая система записывает массив байтов в новый BufferedImage, я хочу утверждать, что два изображения равны по смыслу. Использование equals()(унаследовано от Object) не работает (конечно). Сравнение значений BufferedImage.toString()также не работает, поскольку выходная строка содержит справочную информацию об объекте.

Кто-нибудь знает какие-нибудь ярлыки? Я бы предпочел не использовать стороннюю библиотеку для одного модульного теста в небольшой части большого приложения.

17
задан pharsicle 12 June 2012 в 23:45
поделиться