(Linux/CUI) resizeimg

概要
画像をリサイズして、各画像フォーマットで出力する、CUI ソフトです。

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

  • 対応フォーマット
    [ BMP/PNG/JPEG/GIF/TIFF/WebP/TGA/PSD/AVIF ]
    ※ GIF は読み込みのみ。

  • リサイズの補間方法を選択できます。
    [ mitchell/lagrange/lanczos2/lanczos3/spline16/spline36/bicubic/blacmansinc2/blackmansinc3 ]

    おおよそ、以下の順でシャープになります。
    [ mit < lag < bl2 < lc2 < s16 < bl3 < bic < s36 < lc3 ]

  • 出力サイズは、以下の4通りで指定できます。
    [ px指定/%指定/幅指定(高さ自動)/高さ指定(幅自動) ]

  • グレイスケール化、または2階調化することもできます。
    その場合、グレイスケールカラーに対応している出力フォーマットでは、1bit/8bit グレイスケールで出力します。

  • 各出力フォーマットの保存設定を指定できます。

  • リサイズ前にぼかしを掛けることで、トーン画像の縮小後のモアレを多少軽減させることができます。

  • リサイズ後に RGB に値を加算して、グレイスケール画像に色を付けることもできます。

注意点
  • アルファ値を含む画像は、デフォルトで、背景色と合成して RGB 画像として扱います。
    アルファ付き画像で出力することもできますが、その場合、リサイズは無効になります。
  • 1 サンプルが 16 bit の場合は、8 bit に変換されます。
  • CMYK カラーには対応していません。
  • 原寸大で出力する場合のみ、元画像の解像度を DPI 単位で取得した上で、出力画像に書き込みます。
    その他の元画像の情報は維持されません。
ソースコード
>> https://gitlab.com/azelpg/resizeimg

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

コンパイル方法や使い方については、ReadMe ファイルをご覧ください。
使用例
usage: resizeimg [option] <input_files...>

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

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

## 高さを 800px、幅は自動でリサイズして、out ディレクトリに JPEG で出力

$ resizeimg -h 800 -d out -t jpeg -r spline16 *.png