Per me, questa implementazione concreta sembra funzionare:
private void compareRasterImages(BufferedImage expectedPngIo, BufferedImage actualPngIo) throws AssertionError {
int minX = expectedPngIo.getMinX();
int minY = expectedPngIo.getMinY();
int maxX = expectedPngIo.getMinX() + expectedPngIo.getWidth();
int maxY = expectedPngIo.getMinY()+ expectedPngIo.getHeight();
assertEquals(minX, actualPngIo.getMinX());
assertEquals(minY, actualPngIo.getMinY());
assertEquals(expectedPngIo.getHeight(), actualPngIo.getHeight());
assertEquals(expectedPngIo.getWidth(), actualPngIo.getWidth());
for (int x_i = minX; x_i < maxX; x_i++){
for (int y_i = minY; y_i < maxY; y_i++) {
assertEquals(expectedPngIo.getRGB(x_i, y_i), actualPngIo.getRGB(x_i, y_i));
}
}
}
ho recuperare la BufferedImage dal mio PNG (come byte []) utilizzando ImageIO:
BufferedImage expectedPngIo = ImageIO.read(new ByteArrayInputStream(expectedPng));
enter code here
Bene, di cosa vorresti essere sicuro? –
Buona domanda :-) Ora, come penso, forse non è così importante verificare se l'immagine è esattamente come previsto ma se sono presenti alcune caratteristiche previste. – PeWu