首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打包位图

打包位图
EN

Stack Overflow用户
提问于 2011-07-13 13:41:19
回答 2查看 1.2K关注 0票数 1

我试图将字体字形图像打包成一个单一的纹理。位图是每个像素1个字节的单色,我希望将它们全部打包到一个纹理上。我能够计算出所需的最小纹理大小,但我无法管理一个算法来将它们打包在一起。

我目前已经将位图存储为字符指针,并且我能够获得每个位图的尺寸。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-13 14:15:17

我不是装箱方面的专家,但这里有一个简单的算法,你可以试试。

  1. 从最高到最短对字形进行排序。将首先放置最高的字形。
  2. 让H为下一个最高的未放置字形的高度。
  3. 通过添加高度H来垂直扩展纹理。
  4. 使用剩余的字形(最高到最短)填充该级别,直到没有空间容纳下一个字形。
  5. 转到#2

这就是众所周知的Next-Fit Decreasing Height (NFDH)算法。可以在here上看到一个交互式演示。

由于你们的字形高度大致相同,我认为这个简单的算法应该会给你带来很好的结果。

有关更多算法,请查看此survey

票数 2
EN

Stack Overflow用户

发布于 2012-04-27 02:50:22

简单的打包算法可以在这里找到:http://www.blackpawn.com/texts/lightmaps/

在Jukka Jylänki的论文“打包垃圾桶的一千种方法”中,它被称为“断头台包”。

blackpawn.com的伪代码非常简单。

对于类似的问题也有相关的答案:Piece together several images into one big image

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6674521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档