2013-01-08 27 views
0

我使用carrierwave-vips(带有ruby-vips)来上传和处理16位tiff。 16位tiff将获得保存(单独carrierewave不是问题),但我也想处理缩略图(jpeg)。问题是产生的缩略图完全被吹掉。我能做什么?使用具有16位tiff的carriewave-vips

回答

0

问题是,代表你的乐队级别的16位digtals没有得到缩小。向您的上传者添加以下方法:

def convert_to_8bit 
    manipulate! do |image| 
     #vips specific 
     image.scale 
    end 
    end 

然后在您的版本中使用process: :convert_to_8bit

+0

'image.scale'将搜索图像的最大和最小值,然后将其缩放到适合0 - 255.这会对某些图像产生不好的结果。你想只取16位的前8位。我会使用'(image >> 8).clip2fmt:uchar',即。将位8向右移位,丢弃为无符号字符。最新的libvips 7.32会自动为你做这个,所以更新也是一个选项。 – user894763

+0

嘿,谢谢你的评论。可能对我目前的图像集不是一个大的使用问题,但非常相关。我会尝试先升级我的libvips,看看是否解决了这个问题。 – cgat

+0

我已升级到7.32,它似乎没有自动执行此操作。我相信你是一个维护者,我应该打开一个bug吗?我使用的文件是〜200mb灰度16 tiff。 – cgat