{"id":3830,"date":"2020-07-07T22:57:50","date_gmt":"2020-07-07T21:57:50","guid":{"rendered":"https:\/\/solidt.eu\/site\/?p=3830"},"modified":"2020-09-09T10:34:39","modified_gmt":"2020-09-09T09:34:39","slug":"bash-imagemagick-generate-photo-thumbnails","status":"publish","type":"post","link":"https:\/\/solidt.eu\/site\/bash-imagemagick-generate-photo-thumbnails\/","title":{"rendered":"Bash + ImageMagick generate photo thumbnails"},"content":{"rendered":"\n<p><a href=\"https:\/\/imagemagick.org\/script\/download.php\">https:\/\/imagemagick.org\/script\/download.php<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/imagemagick.org\/download\/binaries\/magick\">https:\/\/imagemagick.org\/download\/binaries\/magick<\/a><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\nfiles=`ls .\/Camera\/*.jpg`\nfor file in $files; do\n    #dir=`dirname $file`\n    name=`basename -s .jpg $file`\n    new=\".\/$name.jpg\"\n    (set -x ; .\/magick convert $file -auto-orient -resize 25% -quality 90 $new)\n    #break; # break on first iteration\ndone;<\/pre>\n\n\n\n<p>With some parallelism:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\nfound=`find .\/Camera -iname '*.jpg'`\nfiles=($(echo $found | tr ',' \"\\n\"))\nn=3 # number of parallel tasks\ncnt=${#files[@]}\nfor ((i = 0; i &lt; $cnt; ++i)); do\n    #dir=`dirname $file`    \n    file=${files[$i]}\n    name=`basename $file`\n    new=\".\/${name%%.*}.jpg\"\n    while (( `jobs | wc -l` >= $n )); do\n        wait -n\n    done\n    echo \"$(( $i + 1 )) \/ $cnt\"\n    (set -x ; .\/magick convert $file -resize 1200x1200 -quality 90% -auto-orient $new) &amp;\n    #break; # break on first iteration\ndone\nwait<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#!\/bin\/bash\nfound=`find .\/ -iname '*.pdf'`\nreadarray -t files &lt;&lt;&lt;\"$found\"\ncnt=${#files[@]}\nconvert=\".\/magick convert\"\n\nfor ((i = 0; i &lt; $cnt; ++i)); do\n    #dir=`dirname $file`    \n    file=${files[$i]}\n    name=`basename \"$file\"`\n    new=\".\/${name%%.*}.jpg\"\n    echo \"$(( $i + 1 )) \/ $cnt\"\n    echo \"$convert \\\"$file\\\" -density 300x300 -quality 90 \\\"$new\\\"\"\n#    (set -x ; .\/magick convert \\\"$file\\\" -density 300x300 -quality 90 \\\"$new\\\")\n    #break; # break on first iteration\ndone<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/imagemagick.org\/script\/download.php https:\/\/imagemagick.org\/download\/binaries\/magick With some parallelism:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3830","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/3830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/comments?post=3830"}],"version-history":[{"count":10,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/3830\/revisions"}],"predecessor-version":[{"id":4027,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/posts\/3830\/revisions\/4027"}],"wp:attachment":[{"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/media?parent=3830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/categories?post=3830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/solidt.eu\/site\/wp-json\/wp\/v2\/tags?post=3830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}