2013-01-08 58 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