├── README └── save.sh /README: -------------------------------------------------------------------------------- 1 | > See [this blog post](http://www.vladstudio.com/blog/entry.php?130) for more details and discussion. 2 | 3 | Some time ago, I published my method of saving a wallpaper in multiple sizes, using "bash" scripting language. Please read the original post here and more recent discussion here. 4 | 5 | Recently, I revised my bash script, and I wanted to share the updated code with you. Maybe you will find it useful. It has comments inside, however, to fully understand what is going on, you will want to learn a bit about bash. 6 | 7 | I removed actual file and folder names, you will need to replace empty variables with actual values. Also, this script does a lot of things you will probably won't need, but I leave them as is, in case you're curious (feel free to modify it to your needs and remove all unnecessary parts). 8 | 9 | I use this script with Ubuntu, it may well work on other systems, but I did not test. Requirements: 10 | 11 | * imagemagick ( sudo apt-get install imagemagick ) 12 | * python 13 | * nice (for minimize CPU usage). To not use "nice", find 'nice -n 19 convert' and replace it with simply 'convert'. 14 | 15 | As seen in the code, the source files I use are: 16 | 17 | * src-8000x5000.jpg for 1 monitor 18 | * src-8000x3000.jpg for 2 monitors 19 | * src-8000x2000.jpg for 3 monitors 20 | * src-2048x2048.jpg for mobile devices 21 | * sig.png for signature (256x80) 22 | 23 | Tweak those to your liking. -------------------------------------------------------------------------------- /save.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ## This is a script to save multiple sizes for a wallpaper from a number of source files 4 | ## Run it with arguments, see help() function for the list of all possible arguments 5 | ## 6 | ## Requires: 7 | ## - imagemagick 8 | ## - python 9 | ## - nice ( To not use "nice", find 'nice -n 19 convert' and replace it with simply 'convert' ) 10 | ## 11 | ## Usage: bash save.sh -123m -f 'filename' 12 | ## or 13 | ## bash save.sh -a -f 'filename' 14 | ## or 15 | ## bash save.sh -? 16 | 17 | 18 | function help() 19 | { 20 | cat << EOF 21 | OPTIONS: 22 | -? Show this message 23 | -1 Save 1 monitor wallpaper from src-8000x5000 (or src-4000x2500).jpg 24 | -2 Save 2 monitor wallpaper from src-8000x3000.jpg 25 | -3 Save 3 monitor wallpaper from src-8000x2000.jpg 26 | -m Save mobile wallpaper from src-2048x2048.jpg 27 | -a Include all above options 28 | -o Overwrite existing files (by default, exising JPG files are skipped) 29 | -f filename, f.e. life_is_good 30 | EOF 31 | } 32 | 33 | ## shortcut function for python; used for math calculations 34 | ## example: $(math $dst_w/$src_w); 35 | ## example: $(math "max(2,3)"); 36 | 37 | function math(){ 38 | #echo `echo "$@" | bc -l` 39 | echo $(python -c "from __future__ import division; print $@") 40 | } 41 | 42 | 43 | 44 | ## resizr: generate a string with parameters for "convert" function 45 | ## usage: $(resizr src_w src_h dst_w dst_h) 46 | ## example: $(resizr 2560 1600 320 480) 47 | 48 | function resizr(){ 49 | local src_w=${1} 50 | local src_h=${2} 51 | local dst_w=${3} 52 | local dst_h=${4} 53 | local ratio1=$(math $dst_w/$src_w); 54 | local ratio2=$(math $dst_h/$src_h); 55 | local ratio=$(math "max($ratio1,$ratio2)") 56 | local inter_w=$(math "int($src_w*$ratio)") 57 | local inter_h=$(math "int($src_h*$ratio)") 58 | local sharp=$(math "round((1/$ratio)/4, 2)") 59 | echo "-interpolate bicubic -filter Lagrange -resize ${inter_w}x${inter_h} -gravity center -crop ${dst_w}x${dst_h}+0+0 +repage -unsharp 0x${sharp} +repage -density 72x72 +repage" 60 | } 61 | 62 | 63 | 64 | ## cropr: generate a string with parameters for "convert" function 65 | ## usage: $(cropr dst_w dst_h gravity) 66 | ## example: $(cropr 480 480 center) 67 | 68 | function cropr(){ 69 | echo "-gravity ${3} -crop ${1}x${2}+0+0 +repage" 70 | } 71 | 72 | 73 | 74 | ## save: shortcut function to resize an image and save 2 copies (with/without signature) 75 | ## parameters: 76 | ## ${1}: source image 77 | ## ${2}: dst width 78 | ## ${3}: dst height 79 | ## ${4}: signature size; example: 96x30 (keep empty to skip saving signed file) 80 | ## ${5}: signature offset; example: +4+4 (keep empty to skip saving signed file) 81 | ## ${6}: output filename suffix (example: x2_1) (optional) 82 | 83 | function save(){ 84 | local src=${1} 85 | local dst_w=${2} 86 | local dst_h=${3} 87 | local sig=${4} 88 | local sig_offset=${5} 89 | local suffix=${6} 90 | echo -n "${dst_w}x${dst_h}${suffix} " 91 | 92 | # read width and height of source file 93 | local src_w=$(identify -format "%w" "${src}") 94 | local src_h=$(identify -format "%h" "${src}") 95 | local dst_filename=${dst_folder}vladstudio_${filename}_${dst_w}x${dst_h}${suffix} 96 | 97 | # save file if it does not exist, or overwrite is true 98 | if [ ! -f ${dst_filename}.jpg -o ${do_overwrite} ]; then 99 | $convert ${src} $(resizr ${src_w} ${src_h} ${dst_w} ${dst_h}) ${temp}temp.psd 100 | 101 | # save jpg without signature 102 | $convert ${temp}temp.psd -quality 100 ${dst_filename}.jpg 103 | 104 | #save jpg with signature, if provided 105 | if [ ! -z ${sig} ]; then $convert ${temp}temp.psd ${temp}sig-${sig}.png -gravity southeast -geometry ${sig}${sig_offset} -composite -quality 100 ${dst_filename}_signed.jpg; fi 106 | fi 107 | 108 | } 109 | 110 | 111 | 112 | ## shortcut variable for "convert" command, for minimum CPU usage 113 | 114 | convert='nice -n 19 convert' 115 | 116 | ## empty default values for variables and actions 117 | 118 | do_1_monitor=false 119 | do_2_monitor=false 120 | do_3_monitor=false 121 | do_mobile=false 122 | do_overwrite=false 123 | filename= 124 | 125 | 126 | ## read actions and variables from command line arguments 127 | 128 | while getopts “?123maof:” OPTION 129 | do 130 | case $OPTION in 131 | 1) 132 | do_1_monitor=true 133 | ;; 134 | 2) 135 | do_2_monitor=true 136 | ;; 137 | 3) 138 | do_3_monitor=true 139 | ;; 140 | m) 141 | do_mobile=true 142 | ;; 143 | a) 144 | do_1_monitor=true 145 | do_2_monitor=true 146 | do_3_monitor=true 147 | do_mobile=true 148 | ;; 149 | o) 150 | do_overwrite=true 151 | ;; 152 | f) 153 | filename=$OPTARG 154 | ;; 155 | ?) 156 | help 157 | exit 1 158 | ;; 159 | esac 160 | done 161 | 162 | 163 | ## set paths to folders and source files 164 | 165 | # folder with source images - you can use ${filename} and provide filename through command line argument 166 | src_folder=ENTER_YOUR_VALUE/${filename}/ 167 | 168 | # folder for destination images 169 | dst_folder=ENTER_YOUR_VALUE/${filename}/ 170 | 171 | # folder for temporary images 172 | temp="ENTER_YOUR_VALUE/" 173 | 174 | # source files 175 | src_1_monitor="${src_folder}src-8000x5000.jpg" 176 | src_2_monitors="${src_folder}src-8000x3000.jpg" 177 | src_3_monitors="${src_folder}src-8000x2000.jpg" 178 | src_mobile="${src_folder}src-2048x2048.jpg" 179 | src_signature="${src_folder}sig.png" 180 | 181 | # disable actions if source files are missing 182 | if [ ! -f ${src_1_monitor} ]; then 183 | do_1_monitor=false 184 | fi 185 | if [ ! -f ${src_2_monitors} ]; then 186 | do_2_monitor=false 187 | fi 188 | if [ ! -f ${src_3_monitors} ]; then 189 | do_3_monitor=false 190 | fi 191 | if [ ! -f ${src_mobile} ]; then 192 | do_mobile=false 193 | fi 194 | 195 | 196 | 197 | ## let's start! 198 | 199 | echo ${filename} 200 | mkdir -p ${dst_folder} 201 | mkdir -p ${temp} 202 | 203 | ## prepare signature in different sizes 204 | 205 | $convert ${src_signature} $(resizr 256 80 74 23) ${temp}sig-74x23.png 206 | $convert ${src_signature} $(resizr 256 80 96 30) ${temp}sig-96x30.png 207 | $convert ${src_signature} $(resizr 256 80 102 32) ${temp}sig-102x32.png 208 | $convert ${src_signature} $(resizr 256 80 130 41) ${temp}sig-130x41.png 209 | $convert ${src_signature} $(resizr 256 80 140 44) ${temp}sig-140x44.png 210 | $convert ${src_signature} $(resizr 256 80 170 53) ${temp}sig-170x53.png 211 | $convert ${src_signature} $(resizr 256 80 186 58) ${temp}sig-186x58.png 212 | 213 | 214 | ## saving wallpapers for 4:3 screens 215 | 216 | if $do_1_monitor; then 217 | 218 | ## prepare temporary ('intermediary') images, for faster resizing 219 | $convert ${src_1_monitor} $(resizr 8000 5000 3200 2000) ${temp}3200x2000.psd 220 | 221 | #4:3 222 | save ${temp}3200x2000.psd 800 600 130x41 +12+28 223 | save ${temp}3200x2000.psd 1024 768 130x41 +12+28 224 | save ${temp}3200x2000.psd 1152 864 130x41 +12+28 225 | save ${temp}3200x2000.psd 1280 960 140x44 +12+40 226 | save ${temp}3200x2000.psd 1280 1024 140x44 +12+40 227 | save ${temp}3200x2000.psd 1400 1050 140x44 +12+40 228 | save ${temp}3200x2000.psd 1440 960 140x44 +12+40 229 | save ${temp}3200x2000.psd 1600 1200 140x44 +12+40 230 | save ${temp}3200x2000.psd 1920 1440 170x53 +12+40 231 | 232 | #thumbs 233 | save ${temp}3200x2000.psd 640 400 234 | save ${temp}3200x2000.psd 500 375 235 | save ${temp}3200x2000.psd 300 225 236 | save ${temp}3200x2000.psd 320 200 237 | save ${temp}3200x2000.psd 200 150 238 | save ${temp}3200x2000.psd 240 150 239 | save ${temp}3200x2000.psd 100 75 240 | save ${temp}3200x2000.psd 120 75 241 | save ${src_mobile} 160 240 242 | fi 243 | 244 | #wide 245 | if $do_1_monitor; then 246 | save ${temp}3200x2000.psd 800 480 102x32 +12+28 247 | save ${temp}3200x2000.psd 1024 600 102x32 +12+28 248 | save ${temp}3200x2000.psd 1280 800 102x32 +12+28 249 | save ${temp}3200x2000.psd 1366 768 130x41 +12+40 250 | save ${temp}3200x2000.psd 1440 900 140x44 +12+40 251 | save ${temp}3200x2000.psd 1600 900 140x44 +12+40 252 | save ${temp}3200x2000.psd 1680 1050 170x53 +12+40 253 | save ${temp}3200x2000.psd 1920 1080 186x58 +12+40 254 | save ${temp}3200x2000.psd 1920 1200 186x58 +12+40 255 | save ${temp}3200x2000.psd 2560 1280 186x58 +12+40 256 | save ${temp}3200x2000.psd 2560 1440 186x58 +12+40 257 | save ${temp}3200x2000.psd 2560 1600 186x58 +12+40 258 | save ${temp}3200x2000.psd 2880 1800 186x58 +12+40 259 | fi 260 | 261 | #mobile 262 | if $do_mobile; then 263 | save ${src_mobile} 120 160 74x23 +4+4 264 | save ${src_mobile} 128 97 74x23 +4+4 265 | save ${src_mobile} 128 128 74x23 +4+4 266 | save ${src_mobile} 128 160 74x23 +4+4 267 | save ${src_mobile} 132 176 74x23 +4+4 268 | save ${src_mobile} 160 128 74x23 +4+4 269 | save ${src_mobile} 174 136 74x23 +4+4 270 | save ${src_mobile} 176 176 74x23 +4+4 271 | save ${src_mobile} 176 192 74x23 +4+4 272 | save ${src_mobile} 176 208 74x23 +4+4 273 | save ${src_mobile} 176 220 74x23 +4+4 274 | save ${src_mobile} 208 144 74x23 +4+4 275 | save ${src_mobile} 208 208 74x23 +4+4 276 | save ${src_mobile} 220 176 74x23 +4+4 277 | save ${src_mobile} 240 160 74x23 +4+4 278 | save ${src_mobile} 240 240 74x23 +4+4 279 | save ${src_mobile} 240 260 74x23 +4+4 280 | save ${src_mobile} 240 300 74x23 +4+4 281 | save ${src_mobile} 240 320 74x23 +4+4 282 | save ${src_mobile} 320 200 74x23 +4+4 283 | save ${src_mobile} 320 240 96x30 +4+4 284 | save ${src_mobile} 320 480 96x30 +4+4 285 | save ${src_mobile} 352 416 96x30 +4+4 286 | save ${src_mobile} 360 480 96x30 +4+4 287 | save ${src_mobile} 360 640 96x30 +4+4 288 | save ${src_mobile} 480 272 96x30 +4+4 289 | save ${src_mobile} 480 320 96x30 +4+4 290 | save ${src_mobile} 480 360 96x30 +4+4 291 | save ${src_mobile} 480 640 96x30 +4+4 292 | save ${src_mobile} 480 800 96x30 +4+4 293 | save ${src_mobile} 640 360 102x32 +4+4 294 | save ${src_mobile} 640 480 102x32 +4+4 295 | save ${src_mobile} 854 960 102x32 +4+4 296 | save ${src_mobile} 960 540 140x44 +4+4 297 | save ${src_mobile} 960 640 140x44 +4+4 298 | save ${src_mobile} 960 854 102x32 +4+4 299 | save ${src_mobile} 640 960 140x44 +4+4 300 | save ${src_mobile} 854 440 140x44 +4+4 301 | save ${src_mobile} 854 480 140x44 +4+4 302 | save ${src_mobile} 960 800 140x44 +4+4 303 | save ${src_mobile} 800 960 140x44 +4+4 304 | save ${src_mobile} 1080 960 140x44 +4+4 305 | save ${src_mobile} 2048 2048 186x58 +12+12 306 | save ${src_mobile} 1024 1024 140x44 +12+12 307 | save ${src_mobile} 1440 1280 170x53 +12+40 308 | fi 309 | 310 | ########## 2 monitors 311 | 312 | if $do_2_monitor; then 313 | 314 | $convert ${src_2_monitors} $(cropr 4000 3000 west) ${temp}4000x3000_1.psd 315 | $convert ${src_2_monitors} $(cropr 4000 3000 east) ${temp}4000x3000_2.psd 316 | 317 | # thumbs 318 | save ${src_2_monitors} 200 75 319 | save ${src_2_monitors} 400 150 320 | 321 | # single image 322 | save ${src_2_monitors} 2048 768 130x41 +12+28 323 | save ${src_2_monitors} 2304 864 130x41 +12+28 324 | save ${src_2_monitors} 2560 960 140x44 +12+40 325 | save ${src_2_monitors} 2560 1024 140x44 +12+40 326 | save ${src_2_monitors} 2800 1050 140x44 +12+40 327 | save ${src_2_monitors} 2880 960 140x44 +12+40 328 | save ${src_2_monitors} 3200 1200 170x53 +12+40 329 | save ${src_2_monitors} 3840 1440 170x53 +12+40 330 | 331 | save ${src_2_monitors} 2560 800 130x41 +12+28 332 | save ${src_2_monitors} 2732 768 140x44 +12+40 333 | save ${src_2_monitors} 2880 900 140x44 +12+40 334 | save ${src_2_monitors} 3200 900 140x44 +12+40 335 | save ${src_2_monitors} 3360 1050 140x44 +12+40 336 | save ${src_2_monitors} 3840 1080 140x44 +12+40 337 | save ${src_2_monitors} 3840 1200 170x53 +12+40 338 | save ${src_2_monitors} 5120 1440 170x53 +12+40 339 | save ${src_2_monitors} 5120 1600 170x53 +12+40 340 | 341 | #x2_1 342 | save ${temp}4000x3000_1.psd 1024 768 130x41 +12+28 x2_1 343 | save ${temp}4000x3000_1.psd 1152 864 130x41 +12+28 x2_1 344 | save ${temp}4000x3000_1.psd 1280 960 140x44 +12+40 x2_1 345 | save ${temp}4000x3000_1.psd 1280 1024 140x44 +12+40 x2_1 346 | save ${temp}4000x3000_1.psd 1400 1050 140x44 +12+40 x2_1 347 | save ${temp}4000x3000_1.psd 1440 1080 140x44 +12+40 x2_1 348 | save ${temp}4000x3000_1.psd 1600 1200 170x53 +12+40 x2_1 349 | save ${temp}4000x3000_1.psd 1920 1440 170x53 +12+40 x2_1 350 | 351 | save ${temp}4000x3000_1.psd 1280 800 130x41 +12+28 x2_1 352 | save ${temp}4000x3000_1.psd 1366 854 140x44 +12+40 x2_1 353 | save ${temp}4000x3000_1.psd 1440 900 140x44 +12+40 x2_1 354 | save ${temp}4000x3000_1.psd 1600 1000 140x44 +12+40 x2_1 355 | save ${temp}4000x3000_1.psd 1680 1050 140x44 +12+40 x2_1 356 | save ${temp}4000x3000_1.psd 1920 1080 140x44 +12+40 x2_1 357 | save ${temp}4000x3000_1.psd 1920 1200 170x53 +12+40 x2_1 358 | save ${temp}4000x3000_1.psd 2560 1440 170x53 +12+40 x2_1 359 | save ${temp}4000x3000_1.psd 2560 1600 170x53 +12+40 x2_1 360 | 361 | #x2_2 362 | save ${temp}4000x3000_2.psd 1024 768 130x41 +12+28 x2_2 363 | save ${temp}4000x3000_2.psd 1152 864 130x41 +12+28 x2_2 364 | save ${temp}4000x3000_2.psd 1280 960 140x44 +12+40 x2_2 365 | save ${temp}4000x3000_2.psd 1280 1024 140x44 +12+40 x2_2 366 | save ${temp}4000x3000_2.psd 1400 1050 140x44 +12+40 x2_2 367 | save ${temp}4000x3000_2.psd 1440 1080 140x44 +12+40 x2_2 368 | save ${temp}4000x3000_2.psd 1600 1200 170x53 +12+40 x2_2 369 | save ${temp}4000x3000_2.psd 1920 1440 170x53 +12+40 x2_2 370 | 371 | save ${temp}4000x3000_2.psd 1280 800 130x41 +12+28 x2_2 372 | save ${temp}4000x3000_2.psd 1366 854 140x44 +12+40 x2_2 373 | save ${temp}4000x3000_2.psd 1440 900 140x44 +12+40 x2_2 374 | save ${temp}4000x3000_2.psd 1600 1000 140x44 +12+40 x2_2 375 | save ${temp}4000x3000_2.psd 1680 1050 140x44 +12+40 x2_2 376 | save ${temp}4000x3000_2.psd 1920 1080 140x44 +12+40 x2_2 377 | save ${temp}4000x3000_2.psd 1920 1200 170x53 +12+40 x2_2 378 | save ${temp}4000x3000_2.psd 2560 1440 170x53 +12+40 x2_2 379 | save ${temp}4000x3000_2.psd 2560 1600 170x53 +12+40 x2_2 380 | 381 | 382 | fi 383 | 384 | ########## 3 monitors 385 | 386 | if $do_3_monitor; then 387 | 388 | $convert ${src_3_monitors} $(cropr 2667 2000 west) ${temp}2667x2000x3_1.psd 389 | $convert ${src_3_monitors} $(cropr 2667 2000 center) ${temp}2667x2000x3_2.psd 390 | $convert ${src_3_monitors} $(cropr 2667 2000 east) ${temp}2667x2000x3_3.psd 391 | 392 | # thumbs 393 | save ${src_3_monitors} 300 75 394 | save ${src_3_monitors} 600 150 395 | 396 | #single 397 | save ${src_3_monitors} 3072 768 130x41 +12+28 398 | save ${src_3_monitors} 3456 864 130x41 +12+28 399 | save ${src_3_monitors} 3840 960 140x44 +12+40 400 | save ${src_3_monitors} 3840 1024 140x44 +12+40 401 | save ${src_3_monitors} 4200 1050 140x44 +12+40 402 | save ${src_3_monitors} 4320 960 140x44 +12+40 403 | save ${src_3_monitors} 4800 1200 170x53 +12+40 404 | save ${src_3_monitors} 5760 1440 170x53 +12+40 405 | 406 | save ${src_3_monitors} 3840 800 130x41 +12+28 407 | save ${src_3_monitors} 4098 768 140x44 +12+40 408 | save ${src_3_monitors} 4320 900 140x44 +12+40 409 | save ${src_3_monitors} 4800 900 140x44 +12+40 410 | save ${src_3_monitors} 5040 1050 140x44 +12+40 411 | save ${src_3_monitors} 5760 1080 140x44 +12+40 412 | save ${src_3_monitors} 5760 1200 170x53 +12+40 413 | save ${src_3_monitors} 7680 1440 170x53 +12+40 414 | save ${src_3_monitors} 7680 1600 170x53 +12+40 415 | 416 | #x3_1 417 | save ${temp}2667x2000x3_1.psd 1024 768 130x41 +12+28 x3_1 418 | save ${temp}2667x2000x3_1.psd 1152 864 130x41 +12+28 x3_1 419 | save ${temp}2667x2000x3_1.psd 1280 960 140x44 +12+40 x3_1 420 | save ${temp}2667x2000x3_1.psd 1280 1024 140x44 +12+40 x3_1 421 | save ${temp}2667x2000x3_1.psd 1400 1050 140x44 +12+40 x3_1 422 | save ${temp}2667x2000x3_1.psd 1440 1080 140x44 +12+40 x3_1 423 | save ${temp}2667x2000x3_1.psd 1600 1200 170x53 +12+40 x3_1 424 | save ${temp}2667x2000x3_1.psd 1920 1440 170x53 +12+40 x3_1 425 | 426 | save ${temp}2667x2000x3_1.psd 1280 800 130x41 +12+28 x3_1 427 | save ${temp}2667x2000x3_1.psd 1366 854 140x44 +12+40 x3_1 428 | save ${temp}2667x2000x3_1.psd 1440 900 140x44 +12+40 x3_1 429 | save ${temp}2667x2000x3_1.psd 1600 1000 140x44 +12+40 x3_1 430 | save ${temp}2667x2000x3_1.psd 1680 1050 140x44 +12+40 x3_1 431 | save ${temp}2667x2000x3_1.psd 1920 1080 140x44 +12+40 x3_1 432 | save ${temp}2667x2000x3_1.psd 1920 1200 170x53 +12+40 x3_1 433 | save ${temp}2667x2000x3_1.psd 2560 1440 170x53 +12+40 x3_1 434 | save ${temp}2667x2000x3_1.psd 2560 1600 170x53 +12+40 x3_1 435 | 436 | #x3_2 437 | save ${temp}2667x2000x3_2.psd 1024 768 130x41 +12+28 x3_2 438 | save ${temp}2667x2000x3_2.psd 1152 864 130x41 +12+28 x3_2 439 | save ${temp}2667x2000x3_2.psd 1280 960 140x44 +12+40 x3_2 440 | save ${temp}2667x2000x3_2.psd 1280 1024 140x44 +12+40 x3_2 441 | save ${temp}2667x2000x3_2.psd 1400 1050 140x44 +12+40 x3_2 442 | save ${temp}2667x2000x3_2.psd 1440 1080 140x44 +12+40 x3_2 443 | save ${temp}2667x2000x3_2.psd 1600 1200 170x53 +12+40 x3_2 444 | save ${temp}2667x2000x3_2.psd 1920 1440 170x53 +12+40 x3_2 445 | 446 | save ${temp}2667x2000x3_2.psd 1280 800 130x41 +12+28 x3_2 447 | save ${temp}2667x2000x3_2.psd 1366 854 140x44 +12+40 x3_2 448 | save ${temp}2667x2000x3_2.psd 1440 900 140x44 +12+40 x3_2 449 | save ${temp}2667x2000x3_2.psd 1600 1000 140x44 +12+40 x3_2 450 | save ${temp}2667x2000x3_2.psd 1680 1050 140x44 +12+40 x3_2 451 | save ${temp}2667x2000x3_2.psd 1920 1080 140x44 +12+40 x3_2 452 | save ${temp}2667x2000x3_2.psd 1920 1200 170x53 +12+40 x3_2 453 | save ${temp}2667x2000x3_2.psd 2560 1440 170x53 +12+40 x3_2 454 | save ${temp}2667x2000x3_2.psd 2560 1600 170x53 +12+40 x3_2 455 | 456 | #x3_3 457 | save ${temp}2667x2000x3_3.psd 1024 768 130x41 +12+28 x3_3 458 | save ${temp}2667x2000x3_3.psd 1152 864 130x41 +12+28 x3_3 459 | save ${temp}2667x2000x3_3.psd 1280 960 140x44 +12+40 x3_3 460 | save ${temp}2667x2000x3_3.psd 1280 1024 140x44 +12+40 x3_3 461 | save ${temp}2667x2000x3_3.psd 1400 1050 140x44 +12+40 x3_3 462 | save ${temp}2667x2000x3_3.psd 1440 1080 140x44 +12+40 x3_3 463 | save ${temp}2667x2000x3_3.psd 1600 1200 170x53 +12+40 x3_3 464 | save ${temp}2667x2000x3_3.psd 1920 1440 170x53 +12+40 x3_3 465 | 466 | save ${temp}2667x2000x3_3.psd 1280 800 130x41 +12+28 x3_3 467 | save ${temp}2667x2000x3_3.psd 1366 854 140x44 +12+40 x3_3 468 | save ${temp}2667x2000x3_3.psd 1440 900 140x44 +12+40 x3_3 469 | save ${temp}2667x2000x3_3.psd 1600 1000 140x44 +12+40 x3_3 470 | save ${temp}2667x2000x3_3.psd 1680 1050 140x44 +12+40 x3_3 471 | save ${temp}2667x2000x3_3.psd 1920 1080 140x44 +12+40 x3_3 472 | save ${temp}2667x2000x3_3.psd 1920 1200 170x53 +12+40 x3_3 473 | save ${temp}2667x2000x3_3.psd 2560 1440 170x53 +12+40 x3_3 474 | save ${temp}2667x2000x3_3.psd 2560 1600 170x53 +12+40 x3_3 475 | 476 | fi 477 | 478 | 479 | rm -rf ${temp} 480 | echo "--- Done!" --------------------------------------------------------------------------------