VIPS を使用して、多数の小さいイメージのディレクトリを 1 つの大きなイメージに追加したいと考えています。node モジュール「sharp」は libvips を使用します。シャープを使用して 2 つの画像を一緒に追加する方法はありますか? VIPS には「LRJOIN」機能がありますが、その明確な実装は見当たりません。
VIPS で画像のディレクトリを 1 つの大きな TIFF に追加する最速の方法を知りたいだけです。メモリの問題のため、ImageMagick などを使用するには画像が大きすぎます。
編集:
ruby-vips を使用してイメージを結合し、VIPS コマンド ライン ツールを呼び出して DZI を生成しました。
#!/usr/bin/ruby
require 'rubygems'
require 'vips'
a = VIPS::Image.new(ARGV[1])
ARGV[2..-1].each {|name| a = a.tbjoin(VIPS::Image.tiff(name, :compression => :deflated))}
a.write("output.tiff", :compression => :deflated)
system("vips dzsave output.tiff '#{ARGV[0]}'/output_dz.zip --overlap=0 --suffix=.jpg")
ruby-sharp githubの問題でコードを見つけて、少し修正しました。550 個の 4096x256 画像の結果 (結合部分のみ):
real 0m17.283s
user 0m47.045s
sys 0m2.139s