c++ - 怎样快速为10亿张1024*1024的图片整体生成一张1024*1024的缩略图?
阿神
阿神 2017-04-17 15:23:12
0
9
1017

有10亿张10241024的png图片,现在需要生成它们整体的一张10241024的缩略图,也就是说,需要在逻辑上将它们拼接起来再生成一张缩略图,有什么高效的好方法吗?尝试了一下ImageMagick,100张图片就耗时很久,有没有什么快速的好方法?谢谢!

阿神
阿神

闭关修行中......

全部回覆(9)
迷茫

1024*1024 = 1,048,576
10億張圖片也就是1000,000,000
每個像素約對應1000張圖片,可以採用採樣的方法,每個像素隨機在1000張圖片中選擇N張,然後在每張圖片中隨機選取M個像素,求平均值為縮圖的一個像素,依序求得縮圖的1024*1024個像素。
可以採用opencv實作。
但是,如果這10億張圖片是隨機的,結果是會接近一張灰度為0.5的圖片的。因為根據中心極限定理,縮圖的每個像素變異數是趨向於0的。你得保證10億張像素組合起來有結構特徵才行。

PHPzhong

打開PS直接畫一張 效率max

巴扎黑

又拍雲,阿里雲OSS都帶圖片處理功能。可以看下API 。

洪涛

資料壓縮,將計算每張圖片在最終圖片上所展像素大小,然後將10億張圖片壓縮為對應大小,最終調用ImageMagick拼接

Peter_Zhu

不太清楚縮圖的生成演算法原理,或是你可以看看能不能把演算法並行化,然後用分散式去做?

左手右手慢动作

為啥會有這個需求,10萬張所成這麼小的圖片,每張圖片一個像素點都佔不到吧?

伊谢尔伦

感覺記憶體會掛掉

黄舟

10億,什麼概念,是大數據了吧

大家讲道理

10億張圖片! ! 還想快速! ! 同求解決方案

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板