PDF 読み込み遅んだよ!
PDFってなんでこんなに無駄にページ数多いの。ってなりなす。PDFをMagickで読み込んだら遅いのなんのって。
require 'Rmagick' name = 'out.pdf' im = Magick::Image.read(name) # めっちゃ遅い im.esize #=> 300
PDFが枚数多いとものすごく時間かかるんですよ。メモリも食うしたまったもんじゃない。PDF遅いってなる。
早く読む方法を見つけた
高速に処理できる。なんと、ページ数を指定して読み込むことが出来る。
require 'Rmagick' name = 'out.pdf[0]' im = Magick::Image.read(name) # 超早い! im.esize #=> 1
PDFの各ページに配列のインデックスを扱うようにアクセスできる。便利。
速度を測定してみる。
out.pdf を作る
for i in {1..10}; cp src.png $i.png ; done convert *.png out.pdf
とりあえず、10枚程度のPNGを放り込んだPDFで実験する。
速い!
takuya@~/Desktop$ time ruby while_pdf.rb real 0m4.624s user 0m4.132s sys 0m0.226s takuya@~/Desktop$ time ruby one_page.rb real 0m1.331s user 0m1.211s sys 0m0.047s
10枚のウチ1枚だから10%とまでは行かないけれど、4倍くらい速いかった。強い。