gpt4 book ai didi

java - android:如何将位图数组合并到一个位图中?

转载 作者:行者123 更新时间:2023-12-01 05:55:35 26 4
gpt4 key购买 nike

我正在尝试在android上制作一个平铺的 map 加载器..到目前为止,我可以解析 tmx 文件,获取所有图 block 数据,并将它们放入二维数组中,如下所示: Bitmaptiles[x][y] ...它可以工作,我现在可以在 Android 上渲染平铺 map ,但只能通过tiles[][] 数组进行交互,如下所示..

如何将位图数组的内容合并到一个位图中?

这是我的渲染方法:

//here's what i have:
for (int x = 0; x < MapLoader.width; x++) {
for (int y = 0; y < MapLoader.height; y++) {
g.drawBitmap( picSource[x][y], posX, posY, BitmapPaint);
}
}

//and here's what i'd like to have:
g.drawBitmap( picDest, posX, posY, BitmapPaint);

我想遍历 picSource[x][y] 获取所有位图并将它们全部放入 picDest 中。这样我就可以获得一张大图片,代表我从平铺 tmx 文件加载和构建的 map ..

(请注意,picSource[][] 数组中包含的位图不位于同一位置..没有位图叠加在任何其他位图之上,它们只是显示在网格中例如,每个都是 4x3 网格中的 32x32 位图。每个网格上都有自己的位置..)

感谢您的帮助

最佳答案

我制作了以下版本,该版本仅使用位图库即可工作。它适用于一维数组,但更改它以处理矩阵将是微不足道的。

private Bitmap rebuildBitmapFromPatches(Bitmap [] patches, int finalWidth, int finalHeight){
int width = patches[0].getWidth();
int height = patches[0].getHeight();
Bitmap image = Bitmap.createBitmap(finalWidth,finalHeight,patches[0].getConfig());
int i=0;
int [] pixelsAux = new int [width*height];
for(int x = 0; x<finalWidth; x+=width){
for(int y = 0; y<finalHeight; y+=height){
patches[i].getPixels(pixelsAux,0,width,0,0,width,height);
image.setPixels(pixelsAux,0, width,x,y,width, height);
i++;
}
}
return image;

关于java - android:如何将位图数组合并到一个位图中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3130447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com