首頁  >  問答  >  主體

c++ - 怎样快速为10亿张1024*1024的图片整体生成一张1024*1024的缩略图?

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

阿神阿神2714 天前946

全部回覆(9)我來回復

  • 迷茫

    迷茫2017-04-17 15:25:12

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

    回覆
    0
  • PHPz

    PHPz2017-04-17 15:25:12

    打開PS直接畫一張 效率max

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:25:12

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

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 15:25:12

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

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-17 15:25:12

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

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-17 15:25:12

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

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 15:25:12

    感覺記憶體會掛掉

    回覆
    0
  • 黄舟

    黄舟2017-04-17 15:25:12

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

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 15:25:12

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

    回覆
    0
  • 取消回覆