指定画像をICNS書類に変換するAppleScriptです。
ICNS書類自体は、Classic Mac OS時代にあったアイコンの画像リソースである「icn#」リソースをファイル化したもの、と理解しています(位置付け的に、データ形式とか厳密なレベルで比較したわけではなくて)。
現在では、ICNS書類を作ってアプリケーションアイコンに指定したり、
Xcode上で解像度の異なる画像ファイルをドラッグ&ドロップすると、アプリケーションのICNSファイルを作ってくれます。
Finder上で解像度の異なる画像をフォルダ構造に入れてフォルダの拡張子をつけかえるだけでICNSと認識してくれたような記憶もあります。
そのため、ICNS書類をわざわざScriptから作る需要もないだろうと考えて掲載してこなかったのですが、意外なところでICNS書類の作成を求められました。
自作アプリケーションのカスタム書類を定義して、書類にカスタムアイコンをつけようとしたところ、PNGなどの画像では認識されず、結局ICNS書類を指定する必要に迫られました(意外)。
そんなわけで、いろいろICNS作成Scriptをまとめておきました。
こちらのScriptは実際には実行していませんが、/usr/bin/tiff2icnsコマンドがmacOS 10.15にも含まれていることを確認しています。
AppleScript名:TIFF画像をicnsに変換 v2scpt |
tell application "Finder" set a to choose file end tell set theTiffPath to POSIX path of a –128 x 128のtiff画像が必要 do shell script "/usr/bin/tiff2icns -noLarge " & (quoted form of theTiffPath) |
こちらは、オープンソースの「IcnsFactory」をフレームワーク化したIconFactory.frameworkを呼び出すバージョンです。自分が実際に使ったのはこちらです。
macOS 10.14以降ではScript Debugger上で実行するか、Script Debuggerから書き出したアプレット(Application(Enhanced))で実行するか、あるいはMacのSIPを解除して実行するなどの方法で実行できます。
Xcode上のAppleScript Applicationプロジェクトに突っ込んで呼び出せば、SIPの解除やScript Debuggerのインストールは必要ありません。
–> Download iconFactory.framework
AppleScript名:画像をICNS書類に |
— Created 2017-04-14 by Takaaki Naganoya — 2017 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "AppKit" use framework "IconFactory" –https://github.com/kgn/IcnsFactory set aFile to POSIX path of (choose file) set outFile to POSIX path of (choose file name) set anImage to current application’s NSImage’s alloc()’s initWithContentsOfFile:aFile set iconFam to current application’s IcnsFactory’s writeICNSToFile:outFile withImages:anImage |