0
我使用carrierwave-vips(帶有ruby-vips)來上傳和處理16位tiff。 16位tiff將獲得保存(單獨carrierewave不是問題),但我也想處理縮略圖(jpeg)。問題是產生的縮略圖完全被吹掉。我能做什麼?使用具有16位tiff的carriewave-vips
我使用carrierwave-vips(帶有ruby-vips)來上傳和處理16位tiff。 16位tiff將獲得保存(單獨carrierewave不是問題),但我也想處理縮略圖(jpeg)。問題是產生的縮略圖完全被吹掉。我能做什麼?使用具有16位tiff的carriewave-vips
問題是,代表你的樂隊級別的16位digtals沒有得到縮小。向您的上傳者添加以下方法:
def convert_to_8bit
manipulate! do |image|
#vips specific
image.scale
end
end
然後在您的版本中使用process: :convert_to_8bit
。
'image.scale'將搜索圖像的最大和最小值,然後將其縮放到適合0 - 255.這會對某些圖像產生不好的結果。你想只取16位的前8位。我會使用'(image >> 8).clip2fmt:uchar',即。將位8向右移位,丟棄爲無符號字符。最新的libvips 7.32會自動爲你做這個,所以更新也是一個選項。 – user894763
嘿,謝謝你的評論。可能對我目前的圖像集不是一個大的使用問題,但非常相關。我會嘗試先升級我的libvips,看看是否解決了這個問題。 – cgat
我已升級到7.32,它似乎沒有自動執行此操作。我相信你是一個維護者,我應該打開一個bug嗎?我使用的文件是〜200mb灰度16 tiff。 – cgat