首页  >  问答  >  正文

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

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

阿神阿神2714 天前945

全部回复(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
  • 取消回复