All Articles

sipsコマンドを使って画像を加工する

Mac OSには、sipsという画像を操作するコマンドがあります。 リファレンスが見つからなかったので、細かなプロパティを調べていきます。

sipsの基本的な使い方

基本的な使い方は下記の通りです。

 sips [image-functions] imagefile ...
 sips [profile-functions] profile ...

sipsには、「画像を操作する関数」と「プロファイルを操作する関数」の二つの系統があります。

プロファイル操作関数

プロパティを取得する: -g, --getProperty key

イメージファイルに設定されているプロパティを取得します。 keyには後述のプロパティを指定してください。 全てのプロパティを取得するには下記のようにします。

sips --getProperty all image.icc
sips -g all image.icc

任意のプロパティを取得するには下記のようにします。

sips --getProperty size image.icc
sips -g size image.icc

任意のプロパティを複数個同時に取得するには下記のようにします。

sips --getProperty size -g pcs image.icc
sips -g size -g pcs image.icc

出力を一行にする: -1, --oneLine

コマンドの結果をパイプでつないで一行で出力します。

sips -g all --oneLine image.icc
sips -g all -1 image.icc

-X, --extractTag tag tagFile

--verify

プロファイル加工関数

プロパティを上書きする: -s, --setProperty key value

上書き可能なプロパティをkeyとvalueを指定して上書きする。

sips --setProperty description aaaa image.icc
sips --s description aaaa image.icc

o, --out file-or-directory

イメージに対する操作結果は基本的に画像ファイルを上書きします。 このオプションを使うことで、操作結果を別のファイルとして保存します。

sips -s description aaaa image.icc --out image_.icc
sips -s description aaaa image.icc -o image_.icc

-d, --deleteProperty key

調査中

--deleteTag tag

調査中

--copyTag srcTag dstTag

調査中

--loadTag tag tagFile

調査中

--repair

調査中

イメージ操作関数

プロパティを取得する: -g, --getProperty key

イメージファイルに設定されているプロパティを取得します。 keyには後述のプロパティを指定してください。 全てのプロパティを取得するには下記のようにします。

sips --getProperty all image.HEIC
sips -g all image.HEIC

任意のプロパティを取得するには下記のようにします。

sips --getProperty size image.HEIC
sips -g size image.HEIC

任意のプロパティを複数個同時に取得するには下記のようにします。

sips --getProperty size -g pcs image.HEIC
sips -g size -g pcs image.HEIC

出力を一行にする:-1, --oneLine

コマンドの結果をパイプでつないで一行で出力します。 -lの方はエラーが発生して使えませんでした。

sips -g all --oneLine image.HEIC

-x, --extractProfile profile

調査中

イメージ加工関数

プロパティを上書きする: -s, --setProperty key value

上書き可能なプロパティをkeyとvalueを指定して上書きする。 特定のプロパティは上書きすることで、イメージファイル自体の内容を書き換えることができます。

sips --setProperty size description aaaa image.HEIC
sips --s size description aaaa image.HEIC

イメージファイルのフォーマットを変更する

sips --s format bmp image.HEIC -o image.bmp

ExIfを削除する

sips --s format bmp image.HEIC -o image.bmp
sips --s format jpeg image.bmp -o image.jpg

-o, --out file-or-directory

イメージに対する操作結果は基本的に画像ファイルを上書きします。 このオプションを使うことで、操作結果を別のファイルとして保存します。

sips -r 90 image.HEIC --out rotate.HEIC
sips -r 90 image.HEIC -o rotate.HEIC

イメージファイルを回転させる: -r, --rotate degreesCW

イメージファイルを時計回りに回転させます。 degreesCWは0~360までの間で指定します。 回転させた結果できる余白は、--padColorオプションで指定します。 デフォルトでは黒色で塗りつぶされました。(HEICイメージファイルだけ?)

sips --rotate 90 image.HEIC
sips -r 90 image.HEIC

イメージファイルを反転させる: -f, --flip horizontal|vertical

イメージファイルを任意の軸で反転させます。

  • horizontal: 水平軸を基準で反転させます。結果としてイメージファイルは上下反転します。
  • vertical: 垂直軸を基準で反転させます。結果としてイメージファイルは左右反転します。

    sips --flip horizontal image.HEIC
    sips -f horizontal image.HEIC
    

イメージファイルを切り出す: -c, --cropToHeightWidth pixelsH pixelsW

イメージファイルから任意の部分を切り出します。

  • pixelsH: 切り出すイメージの高さをpxで指定します。
  • pixelsW: 切り出すイメージの幅をpxで指定します。
sips --cropToHeightWidth 100 100 image.HEIC
sips -c 100 100 image.HEIC

イメージファイルを切り出す範囲を指定する: --cropOffset offsetY offsetH

イメージファイルから任意の部分を切り出すときにオフセットを指定します。

  • offsetY: Y軸のオフセット値を指定します。
  • offsetH: 切り出す高さを指定します。。

    sips -c 100 100 --cropOffset 50 50 image.HEIC
    

-p, --padToHeightWidth pixelsH pixelsW

調査中

--padColor hexcolor

イメージファイル加工した結果できる空白の色をhexcolor文字列で指定し、色を埋めます。

sips -r 30 --padColor d3ffce image.HEIC

イメージファイルを任意の幅と高さにリサイズする: -z, --resampleHeightWidth pixelsH pixelsW

イメージファイルを任意の幅にリサイズします。 幅と高さの比率を維持してリサイズが行われます。

sips --resampleWidth 100 image.HEIC

イメージファイルを幅を指定してリサイズする: --resampleWidth pixelsW

イメージファイルを任意の幅にリサイズします。 幅と高さの比率を維持してリサイズが行われます。

sips --resampleWidth 100 image.HEIC

イメージファイルを高さを指定してリサイズする: --resampleHeight pixelsH

イメージファイルを任意の高さにリサイズします。 幅と高さの比率を維持してリサイズが行われます。

sips --resampleHeight 100 image.HEIC

-Z, --resampleHeightWidthMax pixelsWH

イメージファイルを高さか幅のどちらか大きい方に合わせてリサイズします。 幅と高さの比率を維持してリサイズが行われます。

sips --resampleHeightWidthMax 100 image.HEIC

-i, --addIcon

調査中

--optimizeColorForSharing

調査中

-j, --js file

調査中

-d, --deleteProperty key

調査中

-e, --embedProfile profile

調査中

-E, --embedProfileIfNone profile

調査中

-m, --matchTo profile

調査中

-M, --matchToWithIntent profile intent

調査中

--deleteColorManagementProperties

調査中

プロパティ一覧

--getProperty, --setProperty, --deleteProperty等のコマンドは、任意のkeyを指定する必要があります。 イメージとプロファイルではそれぞれ後述のパラメータをキーとして設定することができます。

特別なキー:

全てのプロパティを出力する特別なキーです。

  • all: 全てのプロパティをテキストで出力する特別なキーです。
  • allxml: 全てのプロパティをXML出力する特別なキーです。

プロファイルプロパティのキー:

  • size(integer, read-only):
  • class(string, read-only):
  • space(string, read-only):
  • pcs(string, read-only):
  • md5(string, read-only):
  • description(utf8, string):
  • cmm(string):
  • version(string):
  • creation(string):
  • platform(string):
  • quality(string):

    • normal
    • draft
    • best
  • deviceManufacturer(string):
  • deviceModel(integer):
  • deviceAttributes0(integer):
  • deviceAttributes1(integer):
  • renderingIntent(string):

    • perceptual
    • relative
    • saturation
    • absolute
  • creator(string):
  • copyright(string):

イメージプロパティのキー:

  • pixelHeight(integer, read-only):
  • pixelWidth(integer, read-only):
  • typeIdentifier(string, read-only):
  • space(string, read-only):
  • samplesPerPixel(integer, read-only):
  • bitsPerSample(integer, read-only):
  • creation(string, read-only):
  • software(string, read-only):
  • hasAlpha(boolean, read-only):
  • dpiHeight(float):
  • dpiWidth(float):
  • format(string):

    • jpeg
    • tiff
    • png
    • gif
    • jp2
    • pict
    • bmp
    • qtif
    • psd
    • sgi
    • tga
    • heic
  • formatOptions(string):

    • default
    • [low|normal|high|best|]
    • [lzw|packbits]
  • make(string):
  • model(string):
  • description(string):
  • copyright(string):
  • artist(string):
  • profile(binary, data):