Last active
June 18, 2017 07:32
-
-
Save FintanK/69d959e2593f7f68210dcb3260a744ab to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 1. TAKES A FOLDER OF IMAGES (in this case /supplied-images) | |
# 2. OPTIMIZES THEIR FORMAT TO MAKE AS LIGHTWEIGHT AS POSSIBLE FOR THE CLIENT DEVICE | |
# 3. JOB CAN TAKE TIME BUT THIS IS VERY POWERFUL WHEN ALLOWED TO RUN OVER 10 MINUTES | |
# 4. GENERATES DIFFERENT SIZES - Maintanins aspect ratio - /www/images | |
# 5. Also generates a JSON file referencing each image | |
# SIZES - xsmall, small, medium, large, xlarge, xxlarge, xxxlarge | |
# Delete folder if it already exists | |
rm -r -f www/images | |
# Create sub-folders for each size | |
mkdir -p www/images | |
mkdir -p www/images/xsmall | |
mkdir -p www/images/small/ | |
mkdir -p www/images/medium/ | |
mkdir -p www/images/large | |
mkdir -p www/images/xlarge | |
mkdir -p www/images/xxlarge | |
mkdir -p www/images/xxxlarge | |
# ENTER THE DIRECTORY WHERE THE USER PLACED THEIR IMAGES (IDEALLY ZIP FORMAT) | |
cd supplied-images | |
# CREATE A JSON FILE TO STORE OUR IMAGE INFORMATION ON THE CLIENT DEVICE | |
touch ../www/images.json | |
echo '{' > ../www/images.json | |
echo '"images":[' >> ../www/images.json | |
for f in $PWD/*.jpg; do | |
width=$(identify -format %w $f) | |
filename=$(basename $f .jpg) | |
echo '{' >> ../www/images.json | |
echo ' "url":"'${filename}'.jpg", ' >> ../www/images.json | |
echo ' "description": "YOUR TITLE" ' >> ../www/images.json | |
echo '},' >> ../www/images.json | |
# WHERE THE MAGIC HAPPENS http://stackoverflow.com/questions/7261855/recommendation-for-compressing-jpg-files-with-imagemagick#_=_ | |
convert "${filename}.jpg" -size ${width}/7 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/xsmall/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width}/6 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/small/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width}/5 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/medium/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width}/4 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/large/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width}/3 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/xlarge/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width}/2 -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/xxlarge/${filename}.jpg"; | |
convert "${filename}.jpg" -size ${width} -strip -interlace Plane -gaussian-blur 0.05 -quality 85% "../www/images/xxxlarge/${filename}.jpg"; | |
echo "Finished Processing: ${filename}.jpg "; | |
done | |
echo ']}' >> ../www/images.json | |
echo "Image processing complete!"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment