RubyからPSDファイルを操作することができるライブラリとして話題になった「PSD.rb」がバージョンアップして様々な新機能が追加されるとともに(リリースノート)、同機能をネイティブで書きなおしたバージョン「PSD Native」が公開されています(LayerValut、GitHub)。
PSD Nativeは、PSD.rbの中でスピードに影響する部分をCのソースコードで書きなおしたもの。使い勝手は同じですが、処理速度が大幅に向上しているため、プロダクション環境で使用する場合に適しているでしょう。
インストール方法
GitHubに書かれていますが、Gemfileに「gem 'psd_native'」を追加して、
$ bundle
bundle経由で使うか、
$ gem install psd_native
gemで直接インストールして使用することができます。
使用方法
PSD.rbの場合とほとんど同じです。
require 'psd_native'
psd = PSD.new("path/to/file.psd")
psd.parse!
先頭のrequire 'psd'が、require 'psd_native'に変わります。
大幅に高速化
Tumblrの説明によると、Pure Ruby版に比較して、Native版では処理速度が大幅に高速化されています。
➜ bundle exec ruby examples/build_image.rb Mockup.psd user system total real 324.350000 1.510000 325.860000 (326.016355)
Pure Ruby版の場合。
➜ bundle exec ruby examples/build_image.rb Mockup.psd user system total real 6.090000 1.110000 7.200000 ( 7.205440)
Native版の場合。
処理速度でだいたい50倍以上になっています。
少し気になるのがライセンスです。「We will begin licensing PSD Native while leaving PSD.rb free.」とあり、PSD Nativeは何やら有料の雰囲気です。オープンソース化されていますが、実際に商用利用する場合は、ライセンスが必要なのかも…。そうなると一気に敷居が高くなってしまいますが…。詳細を知りたい方は、Tumblrの最後にメールアドレスが記載されているのでそこに連絡してみると良いかもです。
PSD.rbに関する以前の記事もどうぞ。