ImageMagick(debian stable에서는 6.9.11-60)을 사용하여 스캔한 페이지(jpg 또는 TIFF)에서 약 24px를 면도하고 싶지만 해당 영역이 실제로 "비어 있는"(즉, 대부분 흰색) 경우에만 가능합니다.
를 사용하겠지만 -shave
해당 영역이 흰색이 아니더라도 픽셀을 제거합니다.
그런 다음 생각했지만 -trim
최대 24px로 제한하는 방법을 모르겠습니다.
질문: 스캔한 이미지의 왼쪽과 오른쪽 24px를 제거하는 방법이 있지만범위가 비어 있는 경우에만?
IM을 사용하지 않는 것이 좋겠다는 생각이 먼저 들었습니다.
답변1
저는 ImageMagick 전문가가 아니기 때문에 한마디로 말씀드릴 수는 없지만, 실행 -trim
하고 결과를 확인하실 수는 있습니다. png를 출력하면 원본 이미지에서 새 이미지의 출처에 대한 정보가 저장됩니다.캔버스(jpg일지라도). 결과 이미지의 x 오프셋과 너비를 사용하여 identify
자르려는 24픽셀을 초과하는지 추출하고 확인할 수 있습니다. 예 -fuzz 10%
를 들어 트림이 흰색 픽셀 이상을 허용하도록 선택적으로 추가할 수 있습니다 . 분명히 자르기로 결정했다면 -shave
jpg를 사용하고 출력할 수 있습니다. 내장 이미지를 사용한 예는 다음과 같습니다.
check(){
origwidth=$(convert out.png -format "%W" info:)
left=$( convert out.png -format "%X" info:)
width=$( convert out.png -format "%w" info:)
let right=origwidth-left-width
if [ "$left" -lt 24 -a "$right" -lt 24 ]
then echo "trim ok"
else echo "dont trim"
fi
}
convert rose: -resize 160x160 inset.jpg
convert granite: -resize 200x200 bg.jpg
composite inset.jpg -geometry +20+20 bg.jpg input.jpg
convert input.jpg -fuzz 10% -trim out.png
check
composite inset.jpg -geometry +30+20 bg.jpg input.jpg
convert input.jpg -fuzz 10% -trim out.png
check