qlmanage -tで生成するサムネイル画像の大きさを変えたいときは、-s <サイズ>でピクセル数を、-f <拡大率>で倍率を指定する。
$ qlmanage -t -s 512 -o out pic.png
$ file out/pic.png.png
out/pic.png.png: PNG image data, 512 x 270, 8-bit/color RGBA, non-interlaced
元のpic.pngは4096 x 2160ピクセルである。長辺が512ピクセルのサムネイルが生成された。実行例はmacOS 27.0.1のもの。
ここでは-oでPNGファイルとして出力して大きさを確認している。
参考: 【qlmanage】ウィンドウを開かずプレビュー・サムネイルをファイルに出力する (-o)
-sでサムネイルの長辺を指定する
-sの値は、サムネイルの長辺のピクセル数である。縦横比は元のファイルのまま保たれる。
$ for s in 32 64 128 512 1024; do
> qlmanage -t -s $s -o out pic.png sample.txt > /dev/null
> echo "-s $s"; file out/* | sed 's/, 8-bit.*//'
> done
-s 32
out/pic.png.png: PNG image data, 32 x 17
out/sample.txt.png: PNG image data, 32 x 32
-s 64
out/pic.png.png: PNG image data, 64 x 34
out/sample.txt.png: PNG image data, 64 x 64
...
-s 1024
out/pic.png.png: PNG image data, 1024 x 540
out/sample.txt.png: PNG image data, 1024 x 1024
横長のPNG画像は長辺が幅になるため、高さが縮む。テキストファイルのサムネイルは正方形である。
-sを省略した場合の既定値は128ピクセルである。
元の画像より大きいサイズは指定できない
画像ファイルでは、元のピクセル数を超えるサムネイルは作られない。4096 x 2160ピクセルの画像に-s 5000を指定すると、元と同じ大きさになる。
$ qlmanage -t -s 5000 -o out pic.png
$ file out/pic.png.png
out/pic.png.png: PNG image data, 4096 x 2160, 8-bit/color RGBA, non-interlaced
元の大きさを持たないテキストファイルでは、指定した大きさのサムネイルが作られる。-s 5000なら5000 x 5000ピクセルである。
-fで倍率を指定する
-fは、-sで指定したサイズに掛ける倍率である。Retinaディスプレイ向けに2倍の画像が欲しいときにも使える。
$ for f in 1 2 3; do
> qlmanage -t -s 128 -f $f -o out pic.png sample.txt > /dev/null
> echo "-s 128 -f $f"; file out/* | sed 's/, 8-bit.*//'
> done
-s 128 -f 1
out/pic.png.png: PNG image data, 128 x 68
out/sample.txt.png: PNG image data, 128 x 128
-s 128 -f 2
out/pic.png.png: PNG image data, 256 x 135
out/sample.txt.png: PNG image data, 256 x 256
-s 128 -f 3
out/pic.png.png: PNG image data, 384 x 202
out/sample.txt.png: PNG image data, 384 x 384
画像のピクセル数は、-sの値に-fの値を掛けたものになる。-sを省略して-f 2だけを指定すると、既定値の128ピクセルに2を掛けた256ピクセルになる。
$ qlmanage -t -f 2 -o out pic.png
$ file out/pic.png.png
out/pic.png.png: PNG image data, 256 x 135, 8-bit/color RGBA, non-interlaced
小数の倍率も指定できる。-s 100 -f 1.5は150ピクセルになる。
不正なサイズを指定すると既定値になる
-s 0や-s abcのように数値として扱えない値を指定しても、エラーにならない。サイズは既定の128ピクセルになる。
$ qlmanage -t -s abc -o out pic.png
$ file out/pic.png.png
out/pic.png.png: PNG image data, 128 x 68, 8-bit/color RGBA, non-interlaced
スクリプトからサイズを渡すときは、意図した大きさになっているかをfileやsips -g pixelWidthで確認するとよい。
-Fで等倍との比較用に生成する
-F <倍率>は、-fと似たオプションである。qlmanage -hには「縮小して描画し、等倍と比較する」と説明されている。
-Fに2以上を指定すると、1つのファイルにつき生成が2回行われ、produced one thumbnailが2回表示される。-F 1では1回である。
$ qlmanage -t -s 128 -F 2 -o out pic.png 2>&1 | grep -c produced
2
$ qlmanage -t -s 128 -F 1 -o out pic.png 2>&1 | grep -c produced
1
画像ファイルの出力サイズには、-fと同じく倍率が掛かる。-s 128 -F 2なら256 x 135ピクセルである。
$ qlmanage -t -s 128 -F 2 -o out pic.png
$ file out/pic.png.png
out/pic.png.png: PNG image data, 256 x 135, 8-bit/color RGBA, non-interlaced
テキストファイルでは、実行するたびに128ピクセルと倍率が掛かった256ピクセルのどちらかになる。同じコマンドを8回繰り返すと、sample.txtのサムネイルは256 x 256ピクセルが5回、128 x 128ピクセルが3回だった。
$ for i in 1 2 3 4 5 6 7 8; do
> qlmanage -t -s 128 -F 2 -o out pic.png sample.txt > /dev/null
> file out/sample.txt.png | sed 's/.*PNG image data, //;s/, 8-bit.*//'
> done
256 x 256
128 x 128
256 x 256
256 x 256
256 x 256
128 x 128
256 x 256
128 x 128
-Fは、1つのファイルの生成を2回行う。保存されるファイルの大きさが一定にならないため、画像の保存には使わない。ファイルに保存する画像の大きさを変えたいときは、-Fではなく-sと-fを使う。
