내 OS 컴퓨터 아래에있는 두 개의 이미지를 비교하려고합니다. os 컴퓨터에서 ImageMagick이 실행 중입니다. 이 방법을 사용하여 및 메신저 :org.im4java.core.CommandException : magick : 작업을위한 이미지가 없습니다.
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;
}
}
을 나는 im4java 사용하고 있습니다 : 1.4.0을하지만이 예외를 수신 compare.run(cmpOp);
메신저 실행
org.im4java.core.CommandException : org.im4java .core.CommandException : magick : CLI arg 1에서`-metric '조작에 대한 이미지가 없습니다. @ 오류/operation.c/CLIOption/5225.
어떤 도움을 주시면 감사하겠습니다. 파고 및 디버깅 후 IMJava 버전 1.4 ImageMagick이 7
와
'expectedScreenShot'과'capturedScreenShot'의 값은 무엇입니까? OS 머신이란 무엇입니까? –
@Mark Setchell expectedScreenShot 및 capturedScreenShot은 내가 비교하고 싶은 이미지의 절대 경로입니다. 예, OS 시스템입니다. expectedScreenShot = /Users/username/src/automation/test2/test.png capturedScreenShot =/Users/username /src/automation/test3/test.png – Youssef
'AE'를 원한다면'stderr'에 대해 compare.setErrorConsumer (StandardStream.STDERR);로 소비자를 설정할 필요가 있다고 생각합니다. –