(Linux/CUI) resizeimg

ソースコード
>> Download

言語: C
License: MIT
動作環境: Linux/macOS/FreeBSD (確認済みのもの)

コンパイル方法などについては、ReadMe、ReadMe_ja をご覧ください。
概要
画像をリサイズして、各フォーマットで出力します。
コマンドラインプログラムです。

原寸大のまま出力することで、画像の形式変換としても使えます。
また、画像の上下左右の切り取りも行えます。

  • 対応フォーマット
    [ BMP/PNG/JPEG/GIF/TIFF/WebP/TGA/PSD ]
    ※ GIF は読み込みのみ。
  • リサイズの補間方法を選択できます。
    [ mitchell/lagrange/lanczos2/lanczos3/spline16/spline32/
    bicubic/blacmansinc2/blackmansinc3 ]


    おおよそ、以下の順でシャープになります。
    [ mit < lag < s16 <= lc2 < bl2 < bl3 < bic < s36 <= lc3 ]
  • 出力サイズは、以下の4通りで指定できます。
    [ px指定/%指定/幅指定/高さ指定 ]
  • グレイスケール化、または2階調化することもできます。
    その場合、グレイスケールカラーに対応している出力フォーマットでは、1bit または 8bit グレイスケールで出力します。
  • 各出力フォーマットの保存設定を指定できます。
  • リサイズ前にぼかしを掛けることで、トーン画像の縮小後のモアレを多少軽減させることができます。
  • リサイズ後に RGB に値を加算して、グレイスケール画像に色を付けることもできます。

注意点
  • RGBA 画像 (アルファ値が含まれている場合) は、白色の背景と合成した後、RGB 画像として扱います。
    (アルファ値を維持したままのリサイズや出力はできません)
  • 1 サンプルが 16 bit の場合は、8 bit に変換されます。
  • CMYK カラーには対応していません。
  • 出力が原寸大の場合のみ、元画像の解像度を DPI 単位で取得した上で、出力画像に書き込みます。
    その他の元画像の情報は維持されません。
使用例
usage: resizeimg [option] <input_files...>

## input.png を 50% にリサイズして out.jpg に出力 (品質 90%)

$ resizeimg -s 50% -o out.jpg -f q=90 input.png

## 左右 10px 上下 20px を切り取り、幅を 800px にリサイズして出力
# ! 高さは縦横比を維持して自動計算
# ! デフォルトの出力フォーマットは PNG
# ! デフォルトの出力ファイル名は <currentdir>/NAME_r.EXT

$ resizeimg -w 800 -r lanczos3 -c 10,20,10,20 input.bmp