Fonction statique pour vérifier si l'erreur RVB de BufferdImage est dans le rapport spécifié en Java

Contexte

Environnement de vérification de fonctionnement

Code

	/**
	 *Rouge par pixel,Green,Affirmez la valeur d'élément de la couleur Bleu.
	 * 
	 *Différence de valeurs d'éléments(±)Augmente ou diminue 5%Est autorisée.
	 */
	static void assertImages(BufferedImage actual, BufferedImage expected) {
		assertThat("La taille de l'image comparée est différente (verticale)", actual.getHeight(), is(expected.getHeight()));
		assertThat("La taille de l'image comparée est différente (horizontale)", actual.getWidth(), is(expected.getWidth()));

		//Pourcentage tolérer l'erreur
		final int ACCEPTABLE_PERCENTAGE = 5;
		//Erreur de tolérance de valeur numérique(±)
		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("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: rouge",
						(double) actualColor.getRed(),
						is(closeTo((double) expectedColor.getRed(), ACCEPTABLE_DIFFERENCE)));

				assertThat("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: vert",
						(double) actualColor.getGreen(),
						is(closeTo((double) expectedColor.getGreen(), ACCEPTABLE_DIFFERENCE)));

				assertThat("Les valeurs des éléments de couleur sont acceptables(±" + ACCEPTABLE_PERCENTAGE + "%)Au-delà: bleu",
						(double) actualColor.getBlue(),
						is(closeTo((double) expectedColor.getBlue(), ACCEPTABLE_DIFFERENCE)));
			}
		}
	}

Recommended Posts

Fonction statique pour vérifier si l'erreur RVB de BufferdImage est dans le rapport spécifié en Java
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
[Java] Vérifiez si la chaîne de caractères est composée uniquement de blancs (= Vierge)
Même si je souhaite convertir le contenu d'un objet de données en JSON en Java, il existe une référence circulaire ...
Une explication rapide des cinq types de statique Java
Commande pour vérifier le nombre et l'état des threads Java
Comment dériver le dernier jour du mois en Java
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
Qu'est-ce que @Override ou @SuppressWarnings ("SleepWhileInLoop") devant la fonction? ?? ??
Juger si les chaînes de caractères à comparer sont les mêmes en Java
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
Si vous n'appelez pas shutdownNow lorsque le transfert est terminé avec le SDK Java d'AWS S3, le thread continuera à rester.
Implémentation d'une fonction similaire en Java
Que faire lorsque le préfixe c n'est pas lié dans JSP
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Servlet Java] La route de Senri est également une étape vers la première
Utiliser un bloc d'initialisation statique pour initialiser la liste / l'ensemble de champs statiques en Java
Mémo: [Java] Si un fichier se trouve dans le répertoire surveillé, traitez-le.
Ceci et cela de la mise en œuvre du jugement en temps réel des dates en Java
Erreur lors de la finalisation du membre de la classe Entity utilisé dans SpringWebFlux
Comment trouver le nombre total de pages lors de la pagination en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
À partir de Java9, les constructeurs de classe correspondant aux types primitifs sont marqués comme obsolètes.
Développement Android, comment vérifier null dans la valeur de l'objet JSON
Qu'est-ce que CHECKSTYLE: OFF trouvé dans la source Java? Checkstyle à savoir de
Obtenez le résultat de POST en Java
Vérifiez le contenu du magasin de certificats Java
Référence Java à comprendre dans la figure
Comment obtenir la date avec Java
Sortie du livre "Introduction à Java"
[Traitement × Java] Comment utiliser la fonction
L'histoire de l'écriture de Java dans Emacs
[Java] Vérifiez le nombre d'occurrences de caractères
Possibilité lors du déploiement sur EC2 mais rien n'est affiché dans le journal des erreurs
Si vous souhaitez satisfaire la couverture de test des méthodes privées dans JUnit
Comment vérifier si une variable d'instance est définie dans une classe Ruby
Comment vérifier la dernière version de io.spring.platform pour l'écriture dans pom.xml de Spring (STS)
Faire correspondre le JSON du cas du serpent au champ du cas du chameau en Java (JVM)
[Java] Où est la classe d'implémentation de l'annotation qui existe dans BeanValidation?
AndroidStudio Faisons référence au C ++ dans le module des autres projets (Java / kotlin)
Code pour supprimer tous les fichiers du préfixe spécifié dans AWS S3 (Java)
Est-il courant de ne pas écrire la balise de fermeture de la balise <P> dans Javadoc?
Branchement conditionnel du résultat de l'instruction SQL pour n'en rechercher qu'une seule en Java
[Rails] Si CSS n'est pas appliqué dans collection_select, vérifiez si vous pouvez spécifier la classe.
Que trouve-t-on ... (3 points) dans la source Java? Argument de longueur variable à connaître
Exemple de code pour obtenir les valeurs de type SQL clés dans Java + MySQL 8.0
[Java] Lors de la mise d'une chaîne de caractères dans le cas de l'instruction switch, il est nécessaire d'en faire une expression constante
[Java] Que faire si le contenu enregistré dans la base de données et le nom de l’énumération sont différents dans l’énumération qui reflète la définition de la base de données