jpeg と png だとどれくらいサイズが変わるのか
単純に変換だけしたとき。
takuya@DESKTOP-2ALDRO3:/mnt/c/Users/takuya/Desktop$ convert sample.jpg -quality 100 out.png takuya@DESKTOP-2ALDRO3:/mnt/c/Users/takuya/Desktop$ convert sample.jpg -quality 100 out.jpg takuya@DESKTOP-2ALDRO3:/mnt/c/Users/takuya/Desktop$ ll out* -rwxrwxrwx 1 takuya takuya 1.2M Aug 21 00:47 out.jpg -rwxrwxrwx 1 takuya takuya 2.1M Aug 21 00:47 out.png
png は圧倒的に不利なので、「パレット化」する。
convert sample.jpg -strip -define png:compression-level=9 -define png:compression-filter=0 -define png:compression-strategy=0 -type Palette out.png
パレット化するとだいぶ無駄が減る。
ll out.* -rwxrwxrwx 1 takuya takuya 550K Aug 21 00:49 out.jpg -rwxrwxrwx 1 takuya takuya 886K Aug 21 01:05 out.png
#!/usr/bin/env ruby def gen_cmd (level,filter,strategy) "convert sample.jpg -strip -define png:compression-level=#{level} -define png:compression-filter=#{filter} -define png:compression-strategy=#{strategy} -type Palette out.#{level}.#{filter}.#{strategy}.png".gsub(/\n/,'') end (0..9).each{|level| (1..5).each{|filter| (0..4).each{|strategy| cmd = gen_cmd level, filter, strategy p cmd `#{cmd}` } } }
全通り試してみよう
圧縮フィルタを変えていく
同じパレット化でも、これくらいに差が出てくるわけです。
ll out.9.5.0.png out.0.1.0.png -rwxrwxrwx 1 takuya takuya 2.9M Aug 21 01:33 out.0.1.0.png -rwxrwxrwx 1 takuya takuya 826K Aug 21 01:38 out.9.5.0.png
2,964,981 out.0.1.0.png 2,964,981 out.0.1.1.png 2,964,981 out.0.1.2.png 2,964,981 out.0.1.3.png 2,964,981 out.0.1.4.png 2,964,981 out.0.2.0.png 2,964,981 out.0.2.1.png 2,964,981 out.0.2.2.png 2,964,981 out.0.2.3.png 2,964,981 out.0.2.4.png 2,964,981 out.0.3.0.png 2,964,981 out.0.3.1.png 2,964,981 out.0.3.2.png 2,964,981 out.0.3.3.png 2,964,981 out.0.3.4.png 2,964,981 out.0.4.0.png 2,964,981 out.0.4.1.png 2,964,981 out.0.4.2.png 2,964,981 out.0.4.3.png 2,964,981 out.0.4.4.png 2,964,981 out.0.5.0.png 2,964,981 out.0.5.1.png 2,964,981 out.0.5.2.png 2,964,981 out.0.5.3.png 2,964,981 out.0.5.4.png 1,328,449 out.1.1.2.png 1,328,449 out.1.2.2.png 1,328,449 out.1.3.2.png 1,328,449 out.1.4.2.png 1,328,449 out.1.5.2.png 1,328,449 out.2.1.2.png 1,328,449 out.2.2.2.png 1,328,449 out.2.3.2.png 1,328,449 out.2.4.2.png 1,328,449 out.2.5.2.png 1,328,449 out.3.1.2.png 1,328,449 out.3.2.2.png 1,328,449 out.3.3.2.png 1,328,449 out.3.4.2.png 1,328,449 out.3.5.2.png 1,328,449 out.4.1.2.png 1,328,449 out.4.2.2.png 1,328,449 out.4.3.2.png 1,328,449 out.4.4.2.png 1,328,449 out.4.5.2.png 1,328,449 out.5.1.2.png 1,328,449 out.5.2.2.png 1,328,449 out.5.3.2.png 1,328,449 out.5.4.2.png 1,328,449 out.5.5.2.png 1,328,449 out.6.1.2.png 1,328,449 out.6.2.2.png 1,328,449 out.6.3.2.png 1,328,449 out.6.4.2.png 1,328,449 out.6.5.2.png 1,328,449 out.7.1.2.png 1,328,449 out.7.2.2.png 1,328,449 out.7.3.2.png 1,328,449 out.7.4.2.png 1,328,449 out.7.5.2.png 1,328,449 out.8.1.2.png 1,328,449 out.8.2.2.png 1,328,449 out.8.3.2.png 1,328,449 out.8.4.2.png 1,328,449 out.8.5.2.png 1,328,449 out.9.1.2.png 1,328,449 out.9.2.2.png 1,328,449 out.9.3.2.png 1,328,449 out.9.4.2.png 1,328,449 out.9.5.2.png 1,128,468 out.1.1.4.png 1,128,468 out.1.2.4.png 1,128,468 out.1.3.4.png 1,128,468 out.1.4.4.png 1,128,468 out.1.5.4.png 1,088,706 out.2.1.4.png 1,088,706 out.2.2.4.png 1,088,706 out.2.3.4.png 1,088,706 out.2.4.4.png 1,088,706 out.2.5.4.png 1,049,337 out.3.1.4.png 1,049,337 out.3.2.4.png 1,049,337 out.3.3.4.png 1,049,337 out.3.4.4.png 1,049,337 out.3.5.4.png 1,016,731 out.4.1.4.png 1,016,731 out.4.2.4.png 1,016,731 out.4.3.4.png 1,016,731 out.4.4.4.png 1,016,731 out.4.5.4.png 1,012,007 out.1.1.3.png 1,012,007 out.1.2.3.png 1,012,007 out.1.3.3.png 1,012,007 out.1.4.3.png 1,012,007 out.1.5.3.png 1,012,007 out.2.1.3.png 1,012,007 out.2.2.3.png 1,012,007 out.2.3.3.png 1,012,007 out.2.4.3.png 1,012,007 out.2.5.3.png 1,012,007 out.3.1.3.png 1,012,007 out.3.2.3.png 1,012,007 out.3.3.3.png 1,012,007 out.3.4.3.png 1,012,007 out.3.5.3.png 1,012,007 out.4.1.3.png 1,012,007 out.4.2.3.png 1,012,007 out.4.3.3.png 1,012,007 out.4.4.3.png 1,012,007 out.4.5.3.png 1,012,007 out.5.1.3.png 1,012,007 out.5.2.3.png 1,012,007 out.5.3.3.png 1,012,007 out.5.4.3.png 1,012,007 out.5.5.3.png 1,012,007 out.6.1.3.png 1,012,007 out.6.2.3.png 1,012,007 out.6.3.3.png 1,012,007 out.6.4.3.png 1,012,007 out.6.5.3.png 1,012,007 out.7.1.3.png 1,012,007 out.7.2.3.png 1,012,007 out.7.3.3.png 1,012,007 out.7.4.3.png 1,012,007 out.7.5.3.png 1,012,007 out.8.1.3.png 1,012,007 out.8.2.3.png 1,012,007 out.8.3.3.png 1,012,007 out.8.4.3.png 1,012,007 out.8.5.3.png 1,012,007 out.9.1.3.png 1,012,007 out.9.2.3.png 1,012,007 out.9.3.3.png 1,012,007 out.9.4.3.png 1,012,007 out.9.5.3.png 988,969 out.5.1.4.png 988,969 out.5.2.4.png 988,969 out.5.3.4.png 988,969 out.5.4.4.png 988,969 out.5.5.4.png 969,534 out.6.1.4.png 969,534 out.6.2.4.png 969,534 out.6.3.4.png 969,534 out.6.4.4.png 969,534 out.6.5.4.png 964,417 out.7.1.4.png 964,417 out.7.2.4.png 964,417 out.7.3.4.png 964,417 out.7.4.4.png 964,417 out.7.5.4.png 958,431 out.8.1.4.png 958,431 out.8.2.4.png 958,431 out.8.3.4.png 958,431 out.8.4.4.png 958,431 out.8.5.4.png 956,071 out.9.1.4.png 956,071 out.9.2.4.png 956,071 out.9.3.4.png 956,071 out.9.4.4.png 956,071 out.9.5.4.png 953,058 out.1.1.0.png 953,058 out.1.1.1.png 953,058 out.1.2.0.png 953,058 out.1.2.1.png 953,058 out.1.3.0.png 953,058 out.1.3.1.png 953,058 out.1.4.0.png 953,058 out.1.4.1.png 953,058 out.1.5.0.png 953,058 out.1.5.1.png 947,009 out.4.1.1.png 947,009 out.4.2.1.png 947,009 out.4.3.1.png 947,009 out.4.4.1.png 947,009 out.4.5.1.png 930,469 out.2.1.0.png 930,469 out.2.1.1.png 930,469 out.2.2.0.png 930,469 out.2.2.1.png 930,469 out.2.3.0.png 930,469 out.2.3.1.png 930,469 out.2.4.0.png 930,469 out.2.4.1.png 930,469 out.2.5.0.png 930,469 out.2.5.1.png 928,669 out.5.1.1.png 928,669 out.5.2.1.png 928,669 out.5.3.1.png 928,669 out.5.4.1.png 928,669 out.5.5.1.png 909,453 out.6.1.1.png 909,453 out.6.2.1.png 909,453 out.6.3.1.png 909,453 out.6.4.1.png 909,453 out.6.5.1.png 905,455 out.7.1.1.png 905,455 out.7.2.1.png 905,455 out.7.3.1.png 905,455 out.7.4.1.png 905,455 out.7.5.1.png 904,646 out.3.1.0.png 904,646 out.3.1.1.png 904,646 out.3.2.0.png 904,646 out.3.2.1.png 904,646 out.3.3.0.png 904,646 out.3.3.1.png 904,646 out.3.4.0.png 904,646 out.3.4.1.png 904,646 out.3.5.0.png 904,646 out.3.5.1.png 897,668 out.8.1.1.png 897,668 out.8.2.1.png 897,668 out.8.3.1.png 897,668 out.8.4.1.png 897,668 out.8.5.1.png 894,594 out.9.1.1.png 894,594 out.9.2.1.png 894,594 out.9.3.1.png 894,594 out.9.4.1.png 894,594 out.9.5.1.png 887,389 out.4.1.0.png 887,389 out.4.2.0.png 887,389 out.4.3.0.png 887,389 out.4.4.0.png 887,389 out.4.5.0.png 873,315 out.5.1.0.png 873,315 out.5.2.0.png 873,315 out.5.3.0.png 873,315 out.5.4.0.png 873,315 out.5.5.0.png 858,641 out.6.1.0.png 858,641 out.6.2.0.png 858,641 out.6.3.0.png 858,641 out.6.4.0.png 858,641 out.6.5.0.png 854,629 out.7.1.0.png 854,629 out.7.2.0.png 854,629 out.7.3.0.png 854,629 out.7.4.0.png 854,629 out.7.5.0.png 848,080 out.8.1.0.png 848,080 out.8.2.0.png 848,080 out.8.3.0.png 848,080 out.8.4.0.png 848,080 out.8.5.0.png 845,454 out.9.1.0.png 845,454 out.9.2.0.png 845,454 out.9.3.0.png 845,454 out.9.4.0.png 845,454 out.9.5.0.png