Ich versuche zwei Bilder zu vergleichen, die sich unter meiner OS-Maschine befinden. Ich habe ImageMagick auf meinem OS-Rechner laufen. und im mit dieser Methode:org.im4java.core.CommandException: magick: keine Bilder gefunden für Operation
public boolean compareImages (String expectedScreenShot, String capturedScreenShot, String pdiffCompare) {
ProcessStarter.setGlobalSearchPath("/usr/local/bin/");
CompareCmd compare = new CompareCmd();
// For metric-output
IMOperation cmpOp = new IMOperation();
// Set the compare metric
cmpOp.metric("AE");
// Add the expected image
cmpOp.addImage(expectedScreenShot);
// Add the current image
cmpOp.addImage(capturedScreenShot);
// This stores the difference
cmpOp.addImage(pdiffCompare);
try {
// Do the compare
compare.run(cmpOp);
compare.getErrorText();
return true;
}
catch (Exception ex) {
return false;
}
}
Ich verwende im4java: 1.4.0, aber wenn ich compare.run(cmpOp);
im Empfang dieser Ausnahme laufen:
org.im4java.core.CommandException: org.im4java .core.CommandException: magick: Keine Bilder gefunden für Operation `-metric 'bei CLI arg 1 @ Fehler/operation.c/CLIOption/5225.
jede Hilfe wäre willkommen.
Was sind die Werte von 'expectedScreenShot' und' capturedScreenShot'? Was ist eine Betriebssystemmaschine? –
@Mark Setchell expectedScreenShot und capturedScreenShot sind der absolute Pfad der Bilder, die ich zwischen ihnen vergleichen möchte und Ja, es ist eine OS-Maschine expectedScreenShot = /Users/username/src/automation/test2/test.png captainScreenShot =/Benutzer/Benutzername /src/automation/test3/test.png – Youssef
Wenn Sie die 'AE' wollen, müssen Sie einen Consumer für' stderr' mit 'compare.setErrorConsumer (StandardStream.STDERR) einrichten;' denke ich. –