ImageMagick 사용(Windows편)
3175 단어 ShellScriptImageMagick
참고:
ImageMagick (1) 설치편
목적
전제
소개
다운로드 페이지에서 "ImageMagick-7.0.7-8-portable-Q16-x64.zip"다운로드
C:\library\ImageMagick
에 배포 C:\Temp
에서 Git Bash 시작 (오른쪽 클릭 → "Git Bash Here") ↑ affine.png : 304pixel x 85pixel의 이미지 (ImageMagick 부속의 이미지집에서)
$ /c/library/ImageMagick/identify.exe -format "%w %h" /c/library/ImageMagick/images/affine.png
304 85
이미지의 크기를 얻을 수 있었으므로 도입 성공
동작을 확인하면서 원하는 쉘 스크립트 작성
$ cat definition
ROOT_PATH="/c/Temp/"
IDENTIFY="/c/library/ImageMagick/identify.exe"
TEMP_FOLDER="_temp"
HEIGHT="_hight-is-longer"
WIDTH="_width_is_longer"
$ cat testShell01.sh
#!/bin/bash
function isPicture(){
# 拡張子で画像かどうか判定
case ${FILE_EXTENSION} in
"jpg" ) TOF="true";;
"png" ) TOF="true";;
* ) TOF="false";;
esac
}
. ./definition
# _____picuturesの中のファイル一覧
ARRAY=$(ls ${ROOT_PATH}${TEMP_FOLDER}/)
if [ -n "${ARRAY}" ]; then
# 一枚ずつサイズを取得して縦横の長さを比較
for item in ${ARRAY[@]};do
FILE_EXTENSION=$(echo ${item} | sed 's/^.*\.\([^\.]*\)$/\1/')
isPicture
# 対象のファイルが画像かどうかの判定
if [ ${TOF} = "true" ] ; then
echo ${item}
tate=$(${IDENTIFY} -format "%h" ${ROOT_PATH}${TEMP_FOLDER}/"${item}")
yoko=$(${IDENTIFY} -format "%w" ${ROOT_PATH}${TEMP_FOLDER}/"${item}")
echo -ne "high:${tate} width:${yoko}\n"
# 縦長なら_hight-is-longerディレクトリへ
# 横長なら_width_is_longerディレクトリへファイルを移動させる
if [ ${tate} -ge ${yoko} ]; then
echo "Vertical picture"
mv -vvv ${ROOT_PATH}${TEMP_FOLDER}/"${item}" ${ROOT_PATH}${HEIGHT}/
else
echo "Horizontal picture"
mv -vvv ${ROOT_PATH}${TEMP_FOLDER}/"${item}" ${ROOT_PATH}${WIDTH}/
fi
echo -e "---\n"
else
echo "${item} is not picture"
fi
done
else
echo "No pictures"
fi
도전
$ cat definition
ROOT_PATH="/c/Temp/"
IDENTIFY="/c/library/ImageMagick/identify.exe"
TEMP_FOLDER="_temp"
HEIGHT="_hight-is-longer"
WIDTH="_width_is_longer"
$ cat testShell01.sh
#!/bin/bash
function isPicture(){
# 拡張子で画像かどうか判定
case ${FILE_EXTENSION} in
"jpg" ) TOF="true";;
"png" ) TOF="true";;
* ) TOF="false";;
esac
}
. ./definition
# _____picuturesの中のファイル一覧
ARRAY=$(ls ${ROOT_PATH}${TEMP_FOLDER}/)
if [ -n "${ARRAY}" ]; then
# 一枚ずつサイズを取得して縦横の長さを比較
for item in ${ARRAY[@]};do
FILE_EXTENSION=$(echo ${item} | sed 's/^.*\.\([^\.]*\)$/\1/')
isPicture
# 対象のファイルが画像かどうかの判定
if [ ${TOF} = "true" ] ; then
echo ${item}
tate=$(${IDENTIFY} -format "%h" ${ROOT_PATH}${TEMP_FOLDER}/"${item}")
yoko=$(${IDENTIFY} -format "%w" ${ROOT_PATH}${TEMP_FOLDER}/"${item}")
echo -ne "high:${tate} width:${yoko}\n"
# 縦長なら_hight-is-longerディレクトリへ
# 横長なら_width_is_longerディレクトリへファイルを移動させる
if [ ${tate} -ge ${yoko} ]; then
echo "Vertical picture"
mv -vvv ${ROOT_PATH}${TEMP_FOLDER}/"${item}" ${ROOT_PATH}${HEIGHT}/
else
echo "Horizontal picture"
mv -vvv ${ROOT_PATH}${TEMP_FOLDER}/"${item}" ${ROOT_PATH}${WIDTH}/
fi
echo -e "---\n"
else
echo "${item} is not picture"
fi
done
else
echo "No pictures"
fi
→ 쉘 스크립트 내에서 이름을 바꾸려고 시도하는 것은 좋지 않으며, 그냥 일괄 처리로 처리합니다.
Reference
이 문제에 관하여(ImageMagick 사용(Windows편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/iwase10moya/items/3a55ac29d5e7bab1dc67텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)