我想使用 VIPS 将许多较小图像的目录附加到一个大图像中。节点模块“sharp”使用 libvips。有没有办法使用Sharp将2张图像附加在一起?VIPS 有一个“LRJOIN”功能,但我没有看到它的清晰实现。
我真的只是想知道让 VIPS 将图像目录附加到一个大 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