Statische Funktion, um zu überprüfen, ob der RGB-Fehler von BufferdImage innerhalb des angegebenen Verhältnisses in Java liegt

Hintergrund

Betriebsüberprüfungsumgebung

Code

	/**
	 *Rot pro Pixel,Green,Aktivieren Sie den Elementwert der blauen Farbe.
	 * 
	 *Unterschied in den Elementwerten(±)Erhöht oder verringert 5%Ist erlaubt.
	 */
	static void assertImages(BufferedImage actual, BufferedImage expected) {
		assertThat("Die zu vergleichende Bildgröße ist unterschiedlich (vertikal)", actual.getHeight(), is(expected.getHeight()));
		assertThat("Die zu vergleichende Bildgröße ist unterschiedlich (horizontal)", actual.getWidth(), is(expected.getWidth()));

		//Prozentsatz toleriert Fehler
		final int ACCEPTABLE_PERCENTAGE = 5;
		//Fehler, der numerische Werte toleriert(±)
		final int ACCEPTABLE_DIFFERENCE = 255 * ACCEPTABLE_PERCENTAGE / 100 / 2;

		int width = actual.getWidth();
		int height = actual.getHeight();
		for (int y = 0; y < height; y++) {
			for (int x = 0; x < width; x++) {
				Color actualColor = new Color(actual.getRGB(x, y));
				Color expectedColor = new Color(expected.getRGB(x, y));

				assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Rot",
						(double) actualColor.getRed(),
						is(closeTo((double) expectedColor.getRed(), ACCEPTABLE_DIFFERENCE)));

				assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Grün",
						(double) actualColor.getGreen(),
						is(closeTo((double) expectedColor.getGreen(), ACCEPTABLE_DIFFERENCE)));

				assertThat("Farbelementwerte sind akzeptabel(±" + ACCEPTABLE_PERCENTAGE + "%)Jenseits: Blau",
						(double) actualColor.getBlue(),
						is(closeTo((double) expectedColor.getBlue(), ACCEPTABLE_DIFFERENCE)));
			}
		}
	}

Recommended Posts

Statische Funktion, um zu überprüfen, ob der RGB-Fehler von BufferdImage innerhalb des angegebenen Verhältnisses in Java liegt
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
[Java] Überprüfen Sie, ob die Zeichenfolge nur aus Leerzeichen besteht (= Leerzeichen)
Auch wenn ich den Inhalt eines Datenobjekts in Java in JSON konvertieren möchte, gibt es einen Zirkelverweis ...
Eine kurze Erklärung der fünf Arten von Java Static
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
So leiten Sie den letzten Tag des Monats in Java ab
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Was ist @Override oder @SuppressWarnings ("SleepWhileInLoop") vor der Funktion? ?? ??
Beurteilen Sie, ob die zu vergleichenden Zeichenfolgen in Java identisch sind
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
So ermitteln Sie die Länge einer Audiodatei mit Java
So erhöhen Sie den Wert von Map in einer Zeile in Java
Wenn Sie shutdownNow nicht aufrufen, wenn die Übertragung mit dem Java SDK von AWS S3 abgeschlossen ist, bleibt der Thread weiterhin bestehen.
Implementierung einer ähnlichen Funktion in Java
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Java Servlet] Die Straße von Senri ist auch ein Schritt zum ersten
Verwenden Sie den statischen Initialisierungsblock, um die Liste / den Satz statischer Felder in Java zu initialisieren
Anmerkung: [Java] Wenn sich eine Datei im überwachten Verzeichnis befindet, verarbeiten Sie sie.
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Ab Java9 werden Klassenkonstruktoren, die primitiven Typen entsprechen, als veraltet markiert.
Android-Entwicklung, wie man den Wert des JSON-Objekts auf null überprüft
Was ist CHECKSTYLE: OFF in der Java-Quelle? Checkstyle zu wissen von
Holen Sie sich das Ergebnis von POST in Java
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
Java-Referenz zum Verständnis in der Abbildung
So erhalten Sie das Datum mit Java
Ausgabe des Buches "Einführung in Java"
[Verarbeitung × Java] Verwendung der Funktion
Die Geschichte des Schreibens von Java in Emacs
[Java] Überprüfen Sie die Anzahl der Zeichen
Möglichkeit bei der Bereitstellung auf EC2, aber im Fehlerprotokoll wird nichts angezeigt
Wenn Sie die Testabdeckung privater Methoden in JUnit erfüllen möchten
So überprüfen Sie, ob eine Instanzvariable in einer Ruby-Klasse definiert ist
So überprüfen Sie die neueste Version von io.spring.platform für das Schreiben in pom.xml von Spring (STS)
Stellen Sie sicher, dass der JSON des Schlangenfalls dem Feld des Kamelfalls in Java (JVM) entspricht.
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
AndroidStudio Verweisen wir auf C ++ im Modul anderer Projekte (Java / Kotlin).
Code zum Löschen aller Dateien mit dem angegebenen Präfix in AWS S3 (Java)
Ist es Mainstream, das schließende Tag des <P> -Tags nicht in Javadoc zu schreiben?
Bedingte Verzweigung des Ergebnisses einer SQL-Anweisung, die nur eine in Java durchsucht
[Rails] Wenn CSS in collection_select nicht angewendet wird, prüfen Sie, ob Sie die Klasse angeben können.
Was ist ... (3 Punkte) in der Java-Quelle gefunden? Argument mit variabler Länge, von dem man wissen muss
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
[Java] Wenn Sie eine Zeichenfolge in die switch-Anweisung einfügen, müssen Sie sie zu einem konstanten Ausdruck machen
[Java] Was tun, wenn sich der in der Datenbank gespeicherte Inhalt und der Name der Aufzählung in der Aufzählung unterscheiden, die die Definition der Datenbank widerspiegelt?