4Dコマンドで扱えない画像ファイルを扱う方法(MacOS X)
日付 | 2007/11/22 |
---|---|
ID | 07-027 |
バージョン | 2004 |
プラットフォーム | MacOS X |
4Dでは様々な画像フォーマットを扱うことができますが、全てのフォーマットや圧縮方法を提供している訳ではありません。また画像を自動で加工するような時には、不便を感じるかもしれません。このような時、OSが持っているコマンドを検討すべきでしょう。
MacOS Xには標準でsipsというコマンドがインストールされています。sipsはMacOS Xで画像を取り扱うためのコマンドです。例えば、4DのWRITE PICTURE FILEを使ってTIFF画像ファイルを作成してみます。
WRITE PICTURE FILE($t_filepath;$p_pict;"TIFF")
この結果得られたファイルをsipsコマンドで調べてみます。ファイルを調べるためには、MacOS Xにユーティリティとして標準でインストールされているターミナルアプリケーションを起動し、そこに次のように入力します。
sips -g all /Users/xxxx/Desktop/xxxxx.tiff
「/Users/xxxx/Desktop/xxxxx.tiff」という部分は、実際のファイルパスを入力してください。リターンキーを押すと次のような情報が得られます。
/Users/xxxx/Desktop/xxxxx.tiff pixelWidth: 1440 pixelHeight: 900 typeIdentifier: public.tiff format: tiff formatOptions: pacbits dpiWidth: 72.000 dpiHeight: 72.000 samplesPerPixel: 4 bitsPerSample: 8 hasAlpha: yes space: RGB profile: Color LCD creation: 2007:11:22 12:00:00 software: QuickTime 7.3
この情報で「formatOptions: pacbits」と得られていることから、pacbits圧縮が行われていることが判ります。例えば同じTIFFでも圧縮無しで保存したいと要求があるときでは、このままでは都合が良くありません。4DのWRITE PICTURE FILEでは、圧縮無しで保存することはできないので、sipsの力を借りることにします。
もしsipsでpacbits圧縮ファイルを圧縮無しに変換するなら、ターミナルで次のように入力します。
sips -s formatOptions default --out /Users/xxxx/Desktop/new.tiff /Users/xxxx/Desktop/xxxxx.tiff
これで非圧縮に変換されました。本当に非圧縮か調べてみます。
sips -g formatOptions /Users/xxxx/Desktop/new.tiff
その結果、次のような情報が得られるはずです。
formatOptions: default
確かに非圧縮になっています。ここまで出来れば、これと同じことを4Dで行うことができます。
`画像ファイルに出力 WRITE PICTURE FILE($t_filepath;$p_pict;"TIFF") `ファイルパスをMacOS用に変換 $t_filepath:=Replace string($t_filepath;":";"/") $t_filepath:=Replace string($t_filepath;"Macintosh HD";"") `ディスク名を取り除く `sipsを呼び出す C_TEXT($t_command;$t_input;$t_output) $t_command:="sips -s formatOptions default --out "+$t_filepath+" "+$t_filepath LAUNCH EXTERNAL PROCESS($t_command;$t_input;$t_output) `変換結果は$t_outputに返される
LAUNCH EXTERNAL PROCESSを使ってsipsを利用します。ターミナルから入力した方法を応用して、WRITE PICTURE FILEで作成したファイルを変換しています。Replace stringを使っている所でファイルパスを4D用からMacOS用に変更している所に注意してください。
ここではsipsを使って画像の圧縮方法を変更する方法を解説しました。しかしこれはsips利用のほんの一例にすぎません。sipsには角度を指定して画像を回転させたりすることもできます。ここでは詳しく書きませんが、sipsの機能についてはターミナルで次のように入力すると判ります。
sips --help
画像のどのようなプロパティが扱えるかは、ターミナルで次のように入力すると判ります。
sips --helpProperties
LAUNCH EXTERNAL PROCESSは、OSのコマンドを自在に操ることができます。もし4Dコマンドで行き詰まることがあってもOSのコマンドで解決できるのなら、同様の方法が利用できます。sips同様、4DのLAUNCH EXTERNAL PROCESSは奥の深いコマンドです。