二维装箱问题应用领域比较多,游戏开发中主要应用于贴图合并。
最近在调研图集打包工具的算法实现,看到一种实现方式是通过二叉树算法,比较朴素且有效,则立刻写用例简单测试验证下。
测试结果:(打包后的图用随机纯色色块代替)
文章来源:https://www.toymoban.com/news/detail-591078.html
测试代码如下:文章来源地址https://www.toymoban.com/news/detail-591078.html
from Packer import Packer
from PIL import Image
import cv2
import os
import random
Canvas_Width = 1024
Canvas_Height = 1024
CanvasPixelColor = [255, 255, 255]
ImgPath = "imgLib"
# 获取path下的所有图片对象
def getImgList(path):
imagelist = []
for parent, dirnames, filenames in os.walk(path):
for filename in filenames:
if filename.lower().endswith(('.png')):
img = cv2.imread(os.path.join(parent, filename), cv2.IMREAD_UNCHANGED)
imagelist.append(img)
print(filename)
return imagelist
# 新建一张图
def newImg(width, height, r, g, b):
img = Image.new('RGB', (width, height))
for i in range(0, width):
for j in range(0, height):
img.putpixel((i, j), (r,
到了这里,关于Python 二叉树算法解决二维装箱问题 (2d bin-packing problem)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!