CALENDAR
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< May 2018 >>
閲覧数の多い順
<< Pythonで正規表現に日本語を使用する。 | main | JUGEM用に画像置場にできるサービスを探す。 >>
スポンサーサイト

一定期間更新がないため広告を表示しています

| - | | - | - | 編集 |
OptiPNGのインストールとJugem用に画像の加工
KSnapshotでスクリーンショットを撮ったけど画像のサイズが大きくて、そのままではJugemにアップロードできない。

圧縮、加工をして画像のサイズを100KB以下にする。

OptiPNGのインストール

OptiPNGはPNG画像を最適化することにより、画像の劣化なくファイルサイズを減らすソフト

http://www.cs.toronto.edu/~cosmin/pngtech/optipng/ より optipng-0.5.tar.gz をダウンロード

~/Desktop/optipng-0.5$ cd optipng-0.5/src/
~/Desktop/optipng-0.5/optipng-0.5/src$ make -f scripts/gcc.mak
$ ls
cbitset.c cbitset.o opng.h opngio.o opngreduc.o optipng.c osys.c osys.o xtra/ cbitset.h cexcept.h opngio.c opngreduc.c optipng* optipng.o osys.h scripts/
# cp optipng /usr/local/bin/optipng

使い方:
optipng -o7 file.png

オプションの説明:
-o optimization level (0-7) default 2

コマンドで使う人はここまで。

Optimise Compression というKDEのサービスメニューに追加するファイルを導入すると、Konquerorやデスクトップで画像をマウスで右クリックするだけで圧縮できるようになる。

Optimise Compression (KDE Service Menu: Optimise PNG image)を file:/home/foo/.kde/share/apps/konqueror/servicemenus/optimise_png.desktopにコピー

OptiPNG

右クリックで圧縮できるようになった。

圧縮した画像は元の画像を上書きするけど、今のところ使っていて不具合はないです。

関連サイト:
A guide to PNG optimization


画像の加工

今回は、アップロードしたい画像のファイルサイズが256KBと大きいので、OptiPNGで圧縮しただけでは100KB以下にならなかった。そこで、画像を壊して(減色や縮小)ファイルのサイズを小さくする。

ImageMagickで減色する。
$ convert -colors 65536 sample3.png sample3.png.out
$ ls -l sample3*
-rw-r--r-- 1 foo foo 274072 2006-04-05 21:40 sample3.png
-rw-r--r-- 1 foo foo 661636 2006-04-07 03:03 sample3.png.out
↑ファイルのサイズが増えてる。失敗。
1024x768 24bpp ファイルサイズ262087 の画像
  1. ImageMagickで半分(50%)にリサイズ

    $ convert -geometry 512x384 sample2_mini.png sample2_mini.png.512.out
    $ ls -l
    -rw-r--r-- 1 foo foo 262087 2006-04-05 21:31 sample2_mini.png
    -rw-r--r-- 1 foo foo 121655 2006-04-07 05:05 sample2_mini.png.512.out

    OptiPNGでMaximum圧縮
    -rw-r--r-- 1 foo foo 119094 2006-04-07 05:05 sample2_mini.png.512.out

  2. ペイントプログラムKolourPaintで半分(50%)にリサイズ -rw-r--r-- 1 foo foo 88189 2006-04-07 05:17 sample2_mini.png.ko.out OptiPNGでDefault圧縮 -rw-r--r-- 1 foo foo 86515 2006-04-07 05:17 sample2_mini.png.ko.out
  3. KolourPaintで60%(614x461)にリサイズ -rw-r--r-- 1 foo foo 126354 2006-04-07 05:19 sample2_mini.png.ko1.out OptiPNGでMaximum圧縮 -rw-r--r-- 1 foo foo 123841 2006-04-07 05:19 sample2_mini.png.ko1.out

2 が 100KB以下になったので、JUGEMにアップロードできる。

おまけ GIMPで半分にリサイズ -rw-r--r-- 1 foo foo 89472 2006-04-07 06:54 sample2_mini_gimp.png

$ identify sample2_mini.png
sample2_mini.png PNG 1024x768 DirectClass 256kb 0.150u 0:01

$ identify sample2_mini.gif
sample2_mini.gif GIF 1024x768 1024x768+0+0 PseudoClass 256c 143kb 0.060u 0:01

$ identify sample2_mini1.gif
sample2_mini1.gif GIF 1024x768 1024x768+0+0 PseudoClass 256c 73kb 0.050u 0:01

ImageMagickでファイル詳細を表示
$ for i in *.png *.out; do identify $i ;done
sample2.png PNG 320x450 DirectClass 39kb 0.030u 0:01
sample2_mini.png PNG 1024x768 DirectClass 256kb 0.160u 0:01
sample2_mini_gimp.png PNG 512x384 DirectClass 87kb 0.050u 0:01
sample2_mini_idx.png PNG 1024x768 PseudoClass 256c 241kb 0.080u 0:01
sample3.png PNG 1024x768 DirectClass 267kb 0.170u 0:01
sample4.png PNG 694x345 DirectClass 50kb 0.020u 0:01
sample2_mini.png.512.out PNG 512x384 DirectClass 116kb 0.030u 0:01
sample2_mini.png.ko.out PNG 512x384 DirectClass 84kb 0.050u 0:01
sample2_mini.png.ko1.out PNG 614x461 DirectClass 121kb 0.060u 0:01
sample2_mini.png.out PNG 1024x768 DirectClass 410kb 0.100u 0:01
sample3.png.out PNG 1024x768 DirectClass 646kb 0.200u 0:01
sample_mini.png.geo.out PNG 717x538 DirectClass 212kb 0.090u 0:01
イラレでWeb用に加工してエクスポート
$ for i in *.gif *.png ;do identify $i ; done
sample2_mini.gif GIF 1024x768 1024x768+0+0 PseudoClass 256c 143kb 0.050u 0:01
sample2_mini1.gif GIF 1024x768 1024x768+0+0 PseudoClass 256c 73kb 0.040u 0:01
sample2_mini.png PNG 1024x768 DirectClass 256kb 0.160u 0:01
$ ls -l
合計 488
-r-xr-xr-x 1 foo foo 145958 2006-04-07 07:15 sample2_mini.gif*
-r-xr-xr-x 1 foo foo 74283 2006-04-07 07:16 sample2_mini1.gif*
-r-xr-xr-x 1 foo foo 262087 2006-04-07 07:10 sample2_mini.png*

イラレでWeb用にエクスポートしたら256色で保存しているので、ImageMagick、GIMP、KolourPaint でも256色に加工してファイルサイズ、画質を比べる。画像の大きさは、1024x768で固定する。

元画像:
-rw-r--r-- 1 foo foo 262087 2006-04-05 21:31 sample2_mini.png
  • ImageMagick
    • $ convert -colors 256 sample2_mini.png sample2_mini.256c.out
      -rw-r--r-- 1 foo foo 226139 2006-04-07 17:25 sample2_mini.png.256c.out
    • 出力ファイルの拡張子を.outから.pngにしてみたけど同じだった。 $ ls -l *.256c.*
      -rw-r--r-- 1 foo foo 226139 2006-04-07 17:35 sample2_mini.256c.png
      -rw-r--r-- 1 foo foo 226139 2006-04-07 17:25 sample2_mini.png.256c.out
    • KolourPaint 256色(ディザリング)PNG: -rw-r--r-- 1 foo foo 215889 2006-04-07 17:27 sample2_mini.png.ko.256d.out
    • これは、ぱっと見でも分かるぐらい画質が悪いのでボツにする。 256色PNG: -rw-r--r-- 1 foo foo 43734 2006-04-07 17:29 sample2_mini.png.ko.256.out これは、ぱっと見でも分かるぐらい画質が悪いのでボツにする。
  • GIMP

    画像 -> モード -> インデックス インデックスカラーに変換

    • カラーマップ:Generate optimum palette 256色; ディザリング:Floyd-Steinberg(normal);Complession level 9

      -rw-r--r-- 1 foo foo 247053 2006-04-07 17:56 sample2_mini.png.gimp.256d.png
    • カラーマップ:Generate optimum palette 256色; ディザリング:Positioned;Complession level 9

      -rw-r--r-- 1 foo foo 138162 2006-04-07 18:12 sample2_mini.gimp.po.png▲
    • カラーマップ:Generate optimum palette 256色; ディザリング:Floyd-Steinberg(reduced color blending);Complession level 9
    • カラーマップ:Use web-optimized palette; ディザリング:Floyd-Steinberg(normal);Complession level 9

      -rw-r--r-- 1 foo foo 205580 2006-04-07 18:00 sample2_mini.gimp.web.png これは、ぱっと見でも分かるぐらい画質が悪いのでボツにする。
      Use web-optimized paletteにするとほかのディザリングでも画質悪かった。
    • カラーマップ:Generate optimum palette 256色; ディザリング:なし;Complession level 9
      これは、ぱっと見でも分かるぐらい画質が悪いのでボツにする。
    • 加工後の画像の比較
      $ for i in *gimp* ;do identify $i ;done
      sample2_mini.gimp.po.png PNG 1024x768 PseudoClass 256c 135kb 0.060u 0:01
      sample2_mini.gimp.re.png PNG 1024x768 PseudoClass 256c 241kb 0.070u 0:01
      sample2_mini.gimp.web.png PNG 1024x768 PseudoClass 137c 201kb 0.070u 0:01
      sample2_mini.png.gimp.256d.png PNG 1024x768 PseudoClass 256c 241kb 0.080u 0:01
      sample2_mini_gimp.png PNG 512x384 DirectClass 87kb 0.040u 0:01

GIMP ;カラーマップ:Generate optimum palette 256色; ディザリング:Positioned;Complession level 9
がサイズが軽いわりに以外と画質がよかったのでこれをOptiPNGで最高圧縮

$ ls -l *po*
-rw-r--r-- 1 foo foo 138162 2006-04-07 18:12 sample2_mini.gimp.po.png
$ optipng -o7 -q sample2_mini.gimp.po.png
$ ls -l *po*
-rw-r--r-- 1 foo foo 137956 2006-04-07 18:41 sample2_mini.gimp.po.png

100KBを越えているので、画像サイズを縮小してファイルのサイズを落とす。

80%,85%,90% に縮小して計測。縮小した画像を新しいキャンバスに張り付けて保存するよりも、キャンバスサイズを縮小して保存する方がファイルのサイズが小さい。

$ ls -l *po*
-rw-r--r-- 1 foo foo 218356 2006-04-07 19:10 gimp.po.80.png
-rw-r--r-- 1 foo foo 338194 2006-04-07 19:06 gimp.po.95.png
-rw-r--r-- 1 foo foo 95995 2006-04-07 19:12 sample2_mini.png.po.c80.png▲
-rw-r--r-- 1 foo foo 155285 2006-04-07 19:01 sample2_mini.po.95.png
-rw-r--r-- 1 foo foo 167204 2006-04-07 19:08 sample2_mini.po.c95.png
-rw-r--r-- 1 foo foo 138162 2006-04-07 19:02 sample2_mini.po.png
$ for i in *po*;do identify $i;done
gimp.po.80.png PNG 824x618 DirectClass 213kb 0.100u 0:01
gimp.po.95.png PNG 974x731 DirectClass 330kb 0.140u 0:01
sample2_mini.png.po.c80.png PNG 824x618 PseudoClass 256c 94kb 0.050u 0:01▲
sample2_mini.po.95.png PNG 974x731 PseudoClass 256c 152kb 0.060u 0:01
sample2_mini.po.c95.png PNG 981x736 PseudoClass 256c 163kb 0.070u 0:01
sample2_mini.po.png PNG 1024x768 PseudoClass 256c 135kb 0.060u 0:01
結論
Ksnapshotでスクリーンショットを取った後、Jugem用に加工するには
  1. optipng でMAX圧縮(Lv 7)をする。
  2. それでも画像のサイズが100KBを越える場合は、GIMPでインデックスカラー:256色;ディザリング:Positioned に画質を落とす。保存するときの圧縮レベルは、9
  3. それでも画像のサイズが100KBを越える場合は、GIMPで画像拡大縮小:80%(ちょうどにはならないみたい);キャンバスサイズ:80%;品質:線形 まで、画面サイズを縮小。 保存するときの圧縮レベルは、9
結果
  • 元画像:
    -rw-r--r-- 1 foo foo 262087 2006-04-05 21:31 sample2_mini.png
  • GIMPで加工:
    -rw-r--r-- 1 foo foo 95995 2006-04-08 00:26 sample2_mini.png_80_.png
  • OptiPNGで圧縮:
    $ ls -l *_80_*
    -rw-r--r-- 1 foo foo 95618 2006-04-08 00:29 sample2_mini.png_80_.png
    $ identify *_80_*
    sample2_mini.png_80_.png PNG 824x618 PseudoClass 256c 93kb 0.040u 0:01

追記:
PNG画像のサイズが116KBの時だとOptiPNGでmuximum圧縮するだけで画像のサイズが91.9KBになった。OptiPNGは、画像のサイズが100KBよりちょっと大きい時などに重宝しそう。

| Debian(公式パッケージ以外のソフト) | 06:12 | comments(0) | trackbacks(0) | 編集 |
スポンサーサイト
| - | 06:12 | - | - | 編集 |
コメント
コメントする









この記事のトラックバックURL
http://cafelate.jugem.cc/trackback/55
トラックバック