로그인
Sign in
조회 수 4975 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
#!/bin/sh

#이미지 파일 화질&크기 변환 스크립트
#-----------------------------------
#
# designed by aamadeus
#
# 2002-02-11
# Pls contact to aamadeus@familyoum.com, if you need...
#
#이미지 파일의 화질 및 크기를 변환해 주는 스크립트입니다.
#와우리눅스 7.1 paran에서 테스트 하였으며 현재까지 문제는 없습니다.
#그렇지만 제가 워낙 초보인 관계로 자신할 수는 없습니다.
#그러나 큰 문제는 없으리라 생각합니다.
#
#저는 디지탈카메라를 간혹 사용하는데, 이미지 파일을 한꺼번에 변경하고자
#이 스크립트를 만들었습니다.
#그 외 이미지 파일을 한꺼번에 바꾸고자 하시는 사람들의 많은 활용 바랍니다.
#
#기본적인 개념은 폴더 단위로 통째로 이미지파일의 화질, 크기, 이름을 변경하는
#것입니다. 이 용도에만 한정하여 만들었으므로 다른 용도로 사용하실 분들은
#소스를 적절히 변경하여 사용하시고, convert 명령어의 메뉴얼 페이지를 참고하기
#바랍니다.
#
#이 스크립트는 기본적으로 ImagemagicK 패키지의 convert 프로그램이 있어야 동작
#합니다. 대부분의 리눅스 배포판에는 이 패키지가 포함되어 있으니 혹시 작동을 잘
#하지 않는 분들은 우선 ImagemagicK 패키지를 설치해 보기 바랍니다.
#
#리눅스가 언젠가는 데스크탑 컴퓨터의 표준이 되기를 바라며..


#기본 환경설정
default_ext="JPG" #기본 파일 확장자.
quality="100" #화질 : 1~100, 100이 최상의 화질
size="640x480" #크기 : 가로크기x세로크기 형식으로 입력

#적절한 인수가 입력되었는지 체크. 적절한 인수가 입력되지 않았다면
#사용법을 보여준다.
if [ ! -n "$1" ] || [ `expr index "$1" /` -ne "0" ] #첫번째 인수 체크
then
echo ""
echo "사용법: `basename $0` subject [file_path]"
echo ""
echo "인수는 다음과 같습니다."
echo "----------------------------------------------"
echo "subject : 필수. 변환할 파일의 주제를 말합니다. 최종적으로 변환되는 파일"
echo " 형식은"
echo ""
echo " subject_no"
echo ""
echo " 의 형식이므로 디렉토리상에 이미지 파일의 주제별로 정렬됩니다."
echo " 예를 들어 여행에 관한 이미지 파일을 변환할 경우 subject에 여행"
echo " 이라고 입력하고 스크립트를 실행하게 되면 다음과 같은 형식으로"
echo " 이미지 파일이 변환됩니다."
echo ""
echo " 여행_001.jpg"
echo " 여행_002.jpg"
echo " 여행_003.jpg"
echo " ..."
echo "file_path : 선택. 스크립트가 실행될 경로명을 입력합니다. 만약 입력하지"
echo " 않으면 현재 디렉토리로 설정됩니다."
echo ""
exit 1
fi

if [ -n "$2" ] #두번째 인수 체크
then
directory=$2 #디렉토리 이름이 인자로 주어질 경우...
strlen="${#directory}" #디렉토리에 /이 써져있을 경우 제거한다.
lastchar="${directory:strlen-1:1}"
if [ "$lastchar" = "/" ]
then
directory="${directory:0:strlen-1}."
fi
else
directory=$PWD #아니면 현재 디렉토리에 대해서.
fi

Rpt=0 #몇번째 이미지인지 체크하기 위한 변수
file_success=0 #변환 성공한 파일이 몇개인지 체크

for i in "$directory/"*."$default_ext" #전체 디렉토리의 파일에 대한 변환 시작
do
let "Rpt=$Rpt+1" #카운터 증가

if (("$Rpt" < "10")) #파일에 번호를 붙이기 위함
then
file_name="00"
elif (("$Rpt" < "100"))
then
file_name="0"
else
file_name=""
fi

file_name="$directory/$1"_"$file_name$Rpt.$default_ext" #생성할 파일이름

echo "변환중.. $i -> $file_name"

convert -compress JPEG -interlace PLANE -quality "$quality" -resize "$size" "$i" "$file_name" #변환과정

if [ "$?" -ne "0" ] #변환 결과를 체크
then
echo "변환 실패! : $file_name"
else
#echo " 변환 성공! : $file_name"
let "file_success=$file_success+1"
fi

done

echo "총 $Rpt개의 파일중 $file_success개 변환 성공!" #결과 메세지 출력

상기 스크립트는 http://kltp.kldp.net/stories.php?story=02/02/11/8611444 에서 퍼온 것으로 -size 옵션 대신에 -resize 옵션으로 수정하였습니다. 원 스크립트로 변환하는 경우 이미지 크기가 오히려 증가하기 때문에 이미지 크기를 작게 조절하기 위해선 -resize 옵션을 사용하였습니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 넘버원 리눅스 팁은 FAQ 게시판으로 zharyong 2018.07.16 808
109 [서버] 센드메일 서버 구축 - 받는 서버- file zharyong 2013.12.22 2054
108 [서버] 공인 네임서버 구축하기 - 1차 네임서버 구축 file zharyong 2013.12.22 1718
107 [서버] 네임서버 chroot를 적용하여 데몬 띄우기 1 file zharyong 2013.12.22 1841
106 [서버] 네임서버 구축시 chroot 적용시 오류 트러블슈팅 RPM 패키지로 네임서버를 구축한 후 chroot를 적용할 경우에는 데몬이 작동하지 못하고, /var/log/messages 파일에 다음과 같은 오류가 발생되었을... zharyong 2013.12.22 2714
105 [서버] 사설 네임서버 구축 - 리눅스의 모든것 업데이트 자료 file zharyong 2013.12.21 2542
104 [엑스] KDE 시작시 프로그램 또는 스크립트 자동 실행 file zharyong 2013.12.03 2050
103 [엑스] 데스크탑 효과(리눅스의 모든 것 업데이트용) file zharyong 2013.12.03 2035
102 [멀티미디어] No1.Linux-PVR과 TV카드로 영상녹화하자. file zharyong 2013.11.08 3411
101 [시스템] 와일드 카드 디렉토리나 파일을 출력하고자 할 때 사용하는 명령어인 ls나 파일 검색을 할 때 주로 사용되는 find 명령어에서 와일드카드(wildcard)가 유용... No1Linuxer 2012.04.05 6629
100 [시스템] 쉘 명령어 히스토리 쉘에서 실행한 명령어들은 사용자 계정의 .bash_history 파일에 기록되어 방향키 위/아래 키를 이용하여 이전에 사용했던 명령어를 다시 보거나 ... No1Linuxer 2012.04.04 4415
99 [시스템] 콘솔에서 마우스 사용하기 엑스 윈도우를 주로 사용하는 분들은 콘솔에서 마우스 사용에 대한 필요성을 느끼지 못합니다. 그러나 콘솔에서도 마우스를 사용하고자 할 경우... No1Linuxer 2012.04.04 3780
98 [시스템] 찾기 명령의 결과를 실행하도록 하는 명령 명령1 -exec 명령2 '{}' \; 예를 들어 find 명령으로 어떤 파일을 찾아서 그 파일에 대한 정보를 확인하는 명령이 동시에 실행되도록 하려... No1Linuxer 2012.04.04 3188
97 [KDE] KDE에 맥 Dock 적용하기 -Fancy 위젯 1 file zharyong 2011.04.20 4093
96 [시스템] 시스템이 먹통되었을 때 키보드로 리부팅하는 방법 시스템이 먹통되는 경우 SysRQ키를 이용하여 시스템을 안전하게 리부팅하는 방법입니다. Alt키+SysRQ+b키를 사용하면 잠시후에 리부팅이 이뤄집니... zharyong 2011.04.02 4569
95 [시스템] No1.Linux의 부트로더를 화려하게 제목: No1.Linux의 부트로더를 화려하게 장식해 보자. GRUB 부트로더에 이미지를 추가하여 부트로더 메뉴 바탕화면을 꾸미는 방법은 간단합니... zharyong 2011.03.31 4768
94 [시스템] 라이브USB 생성하는 법 PCLinuxOS-liveUSB file zharyong 2011.03.09 3443
93 [X윈도우] Modeline 설정 도구 - Videogen 1 file zharyong 2011.03.08 4114
» [그래픽] 이미지 해상도 및 크기 조절 스크립트 #!/bin/sh #이미지 파일 화질&amp;크기 변환 스크립트 #----------------------------------- # # designed by aamadeus # # 2002-02-11 # Pls contact to a... zharyong 2010.07.31 4975
91 [시스템] 나비와 로케일 i18n 설정파일 /etc/sysconfig/i18n 파일 설정내용입니다. LANGUAGE=ko_KR.UTF-8:ko GTK_IM_MODULE=xim LC_ADDRESS=ko_KR.UTF-8 LC_COLLATE=ko_KR.UTF-8 ... zharyong 2010.05.19 5716
90 [시스템] Canon MF 8030CN 프린터 설치 file zharyong 2010.05.17 5157
목록
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 13 Next
/ 13