TIFFデータの画像サイズ変更

この前からRMagickを使ったCGIを書いてる訳だが、TIFFデータに関しては、resizeなどのメソッドを使わなくても、attribute methodのx_resolutionやy_resolutionをいじれば変更できることに気づく。

要は、画像データのピクセル数はそのままでresolution(=通常は1インチあたりのピクセル数、つまりDot Per Inch(DPI)で表す)の値を変化させると、画像のサイズは(ピクセル数)÷(resolution)で決定されるため、結果的にサイズが小さくなる。拡大は当然その逆。

元のピクセルデータそのものは変更しないため、resizeメソッドを使うよりも高速でかつ劣化も無い。

実際のコードはこんな感じ。


image.x_resolution = image.x_resolution*scale_factor
image.y_resolution = image.y_resolution*scale_factor

Rubyらしくないって?ほっといてください(笑)