我有一个不是正方形的图像(mxn 尺寸)。此外,它的尺寸不是以 2 为底的(即 m not = 2^k & n not = 2^k)。我已经通过使用以下方法将图像放置在一个更大的正方形(二的下一个幂)中来解决这个问题:
int width = (int)Math.ceil(Math.pow(2, Math.log(img.width)/Math.log(2)));
int height = (int)Math.ceil(Math.pow(2, Math.log(img.height)/Math.log(2)));
根据哪个产生最大尺寸,我将要绘制的正方形设置为最大尺寸,即:
if (img.width > img.height) {
// draw width * width square
}
if (img.height > img.width) {
// draw height * height square
}
问题:
四叉树现在看起来完全不同,因为它在树中存储了所有非图像节点。这显然会影响假定的图像数据(即最小/最大深度)和整个树形本身。我的问题是,我是否以有效的方式执行此操作,如果是,我如何不存储不属于图像的数据?如果这不是绘制非方形图像的最佳方法,有人可以指出我正确的方向吗?对我而言,谷歌上的所有文章似乎都太深入了。