• 请不要在回答技术问题时复制粘贴 AI 生成的内容
imagecap
V2EX  ›  程序员

有玩过超大图合并算法的吗?

  •  
  •   imagecap ·
    wayixia · Aug 2, 2017 · 5570 views
    This topic created in 3381 days ago, the information mentioned may be changed or developed.
    1.低内存( 1G )和低(无)显卡的机器
    2.由多块小图( 2500 * 1024 )合并成超大图( 5000 像素 * 60000 像素 )
    3.合并后的图片压缩格式 png 或者 jpg



    有没有 v2 的高手同学玩过?
    18 replies  •  2017-08-03 18:19:13 +08:00
    oh
    oh
    Aug 2, 2017 via iPhone
    1
    啥语言……
    imagecap
    imagecap
    OP
    Aug 2, 2017
    2
    @oh 语言不限
    oh
    oh
    Aug 2, 2017 via iPhone
    3
    @wayixia 有点意思,有 2500*1024 的图片素材吗?
    zmj1316
    zmj1316
    Aug 2, 2017
    4
    先拼成 bmp 然后转 png ?简单粗暴
    rogerchen
    rogerchen
    Aug 2, 2017
    5
    @wayixia
    imagemagick 有一个叫 stream 的 CLI,专门针对你这种情况的


    @zmj1316
    拼好放到内存里就 900M 了,1G 内存搞个毛。
    lybtongji
    lybtongji
    Aug 2, 2017
    6
    @rogerchen 磁盘操作
    JerryCha
    JerryCha
    Aug 2, 2017
    7
    顺序确定的话,把数据块抽出来追加,改文件头信息
    slack
    slack
    Aug 2, 2017
    8
    hienchu
    hienchu
    Aug 2, 2017
    9
    性能没要求的话,流处理就可以了,硬盘够就行
    VShawn
    VShawn
    Aug 2, 2017
    10
    流处理+1,先算好每张图在大图中的相对坐标,按照图片二进制格式写入,内存中每读几百兆的内容就写入硬盘一次,就是处理速度可能会比较慢。
    afpro
    afpro
    Aug 2, 2017
    11
    涉及图片重叠、扭曲、旋转之类的问题不?
    imagecap
    imagecap
    OP
    Aug 2, 2017
    12
    @oh 素材有的,要的话我给你发一份 1920 * 950 合并后大小 1920 * 43700 像素
    imagecap
    imagecap
    OP
    Aug 2, 2017
    13
    @rogerchen nodejs 我已经试过了,太占内存了
    imagecap
    imagecap
    OP
    Aug 2, 2017
    14
    @afpro 没那么复杂,唯一的要求就是在低内存低显卡的情况下完成大图合并
    imagecap
    imagecap
    OP
    Aug 2, 2017
    15
    @VShawn
    @hienchu

    类似把硬盘当内存用,慢是慢点
    zmj1316
    zmj1316
    Aug 3, 2017
    16
    @rogerchen 放内存里还用 bmp 做什么,bmp 格式的像素信息在文件上位置是确定的,基本就等于拼文件了
    superboss01
    superboss01
    Aug 3, 2017
    17
    直接算出每个图片的像素大小,然后写入一个初始化后的 bmp 里面,简单粗暴
    afpro
    afpro
    Aug 3, 2017
    18
    按行拼接,jpeg 和 png 都支持按行 decode 和 encode,所以你的内存只要能放下两行 RGB 就够了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4365 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 09:46 · PVG 17:46 · LAX 01:46 · JFK 04:46
    ♥ Do have faith in what you're doing.