Tips

4Dコマンドで扱えない画像ファイルを扱う方法(MacOS X)

日付2007/11/22
ID07-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は奥の深いコマンドです。