Convert images

scale up using nearest neighbour interpolation

https://graphicdesign.stackexchange.com/a/41189

convert from.png -interpolate Nearest -filter point -resize 800% to.png

create a side by side image:

https://stackoverflow.com/questions/20737061/merge-images-side-by-side-horizontally

convert +append  LEFT.jpg RIGHT.jpg COMBI.png

batch set jpg quality to 80%

mogrify -quality 80% *.jpg 

cmyk pdf to rgb jpg sequence

convert -colorspace sRGB input.pdf output/%d.jpg

16bit grayscale to separate 8 bit color channels (with Python)

https://gist.github.com/companje/85e94ea96629ddaf1219f137b225fd69

combine images vertically and create filename with 0's padding

folder="folder/"

for number in `seq 1 1 370`;
do
  temp_num="00000$number"
  padded="${temp_num:(-5)}"

  input1=$number-1.tif
  input2=$number.tif
  result=NL-UtHUA_0046_00_00727_00J_$padded.jpg

  convert "$folder$input1" "$folder$input2" -clone 0 -delete 0 -gravity North -append $result
done

unsharp (mask?)

convert INPUT.jpg -unsharp 10x4+1+0 OUTPUT.jpg

blacken

convert INPUT.jpg -fill "black" -draw "rectangle 0,440,3000,4200" -draw "rectangle 0,0,3000,180" -draw "rectangle 1870,0,3000,440" ../black/NL-OUTPUT.jpg

crop

convert test.jpg -crop 1870x290+0+150 x.jpg

separate channels to different (grayscale) files

convert rgb.png -separate %d.png

convert 16 bit grayscale to 2x 8 bits channel/file

convert 16_bit_unsigned_int.tif -endian MSB -depth 8 8_bit_hi.png
convert 16_bit_unsigned_int.tif -endian LSB -depth 8 8_bit_lo.png

resize (and replace) to longest axis 2048

mogrify -resize 2048 *.jpg

resize to certain filesize

will take 4 to 8 times longer

convert INPUT -define jpeg:extent=2MB OUTPUT

Convert to thumbs

mogrify -resize x400 *.jpg   # all jpg's in folder are resized to height 400px (overwriting originals)

Convert 16 bit grayscale png to 16 bits raw

stream -map r -storage-type short earth-elevation.png earth-elevation.raw

or

convert input.png output.gray

Convert 16 bit grayscale png to 2 separate 8 bits png's

there must be a better way...

convert input16bits.png 16.gray
convert -size 4096x2048 -endian MSB 16bits.gray -depth 8 8bits-hi.png
convert -size 4096x2048 -endian LSB 16bits.gray -depth 8 8bits-lo.png

contrast-stretch / normalize

convert earth-elevation.png -depth 16 -normalize earth.png

convert pdf to png high quality

convert           \
   -verbose       \
   -density 150   \
   -trim          \
    test.pdf      \
   -quality 100   \
   -flatten       \
   -sharpen 0x1.0 \
    24-18.jpg

convert from 16bit to red+green channel

(somehow this doesn't work for me anymore)

convert Mars_8k_16bit.tif -depth 24 mars24.rgb
convert -size 8192x4096 -depth 8 rgb:mars24.rgb mars_redgreen.png

convert DDS to PNG

convert Mars-normalmap_8k.dds Mars-normalmap_8k.png

1 resize (sample) very large image file

convert -debug cache -limit area 1GB  /Users/rick/Downloads/Mars_MGS_MOLA_DEM_mosaic_global_463m.tif -sample 4096x2048 test.tiff

2 create redgreen gradient palette 64k wide

convert -size 10x65535  -rotate -90  gradient:red-green  redgreen.png
# black-yellow
convert -size 1x65535 -rotate -90   gradient:black-yellow blackyellow.png

3 lookup colors in palette (not sure yet if it solves my problem)

convert -interpolate bilinear /Users/rick/Downloads/mars-8k-16bpp-bump.tiff redgreen.png -clut -depth 8 out.png

works:

convert -size 1x65535 -rotate -90   gradient:black-yellow blackyellow.png
convert -interpolate bilinear Mars_8k_Disp_v001.tif blackyellow.png -clut -depth 8 out.png

Convert multiple jpg's into bmp's

for i in *.jpg; do sips -s format bmp $i --out ../clouds-201509-bmp/$i.bmp;done

Resize batch

first height, then width!

  for i in *.jpg; do sips -z 1024 2048 $i --out ../clouds-201509-2k/$i;done

create gradient

convert -size 100x300 gradient:#000-#f00 gradient:#f00-#ff0 gradient:#ff0-#fff gradient:#fff-#0ff gradient:#0ff-#00f gradient:#00f-#000 -append lut.png