BASH script: resize pictures in rar archive

It's tested on CentOS 7.

Before use it, you must install zip and ImageMagick:
yum install zip ImageMagick
and unrar:
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uvh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# yum update
# yum install unrar

Create a exectable file (it names "rarresizer.sh" here.) with Code below:
#!/bin/bash
mkdir ./tmp
mkdir ./produced
IFS=$'\n'
for UNRARFILE in $( ls *.rar ); do
 echo item: $UNRARFILE
 UNRARCACHE="${UNRARFILE%.rar}"
 mkdir ./tmp/$UNRARCACHE
 unrar x $UNRARFILE tmp/$UNRARCACHE
 find ./tmp/$UNRARCACHE -name *.jpg -print -exec mogrify -resize x1308\> {} \;
 find ./tmp/$UNRARCACHE -name *.png -print -exec mogrify -resize x1308\> {} \;
 find . -name *.txt -exec rm -f {} \;
 find . -name *.url -exec rm -f {} \;
 cd ./tmp
 zip -0 -r ../produced/$UNRARCACHE.zip ./$UNRARCACHE
 cd ..
done
echo done\!
unset IFS

You can change resize parameter with width x height like this:
 find ./tmp/$UNRARCACHE -name *.jpg -print -exec mogrify -resize 512x1308 {} \;

or by percentage:
 find ./tmp/$UNRARCACHE -name *.jpg -print -exec mogrify -resize 50% {} \;

Execute: copy zipresizer.sh to the directory that you wanna to resize, and execute it use ". "
#. rarresizer.sh

Warning:
1. All rar archive files in directory will be resized.
2. Verify your permissions.
3. not use "./" like below when you execute it:
#./rarresizer.sh
4. Only jpg and png will be resize.
5. It will delete *.txt and *.url in your rar archive file.
6. You must delete "tmp" manually after resizing done.

留言

  1. casino bonus codes
    new casino bonus codes 카지노 casino bonus william hill codes casino bonus codes betway login bonus codes casino bonus codes bonus codes

    回覆刪除

張貼留言

這個網誌中的熱門文章

CCIE Routing and Switching考試心得@2009

關於Dell XPS 15 (9550) / Precision 15 (5510) UHD (4K) 螢幕閃爍問題 (已解決)