我正在开发一个 android 的分布式应用程序。我已将单个图像拆分为 4 个部分,然后对其进行处理。现在我想将 4 个位图图像组合成一个图像。我怎样才能做到这一点?
问问题
34117 次
3 回答
23
Bitmap[] parts = new Bitmap[4];
Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
for (int i = 0; i < parts.length; i++) {
canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i / 2), paint);
}
像这样的东西=)
于 2013-03-01T06:54:47.577 回答
7
以下代码将帮助您将四个位图合二为一。调用此方法 3 次以合并四张图像。
第 1 步:合并前两个图像
第2步:合并重命名的两个图像
第 3 步:合并两个新创建的位图
public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
Canvas canvas = new Canvas(bmOverlay);
canvas.drawBitmap(bmp1, new Matrix(), null);
canvas.drawBitmap(bmp2, 0, 0, null);
return bmOverlay;
}
于 2013-03-01T06:55:05.903 回答
1
您需要创建一个位图类型的函数。也就是说,它返回一个位图数据类型。该函数应该有一个数据类型 Bitmap 的参数,它是一个数组。
您将图像作为位图数组传递给函数。这是我们的功能,不仅可以合并四张图像,还可以合并任意大小的图像。
private Bitmap mergeMultiple(Bitmap[] parts){
Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
Paint paint = new Paint();
for (int i = 0; i < parts.length; i++) {
canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i / 2), paint);
}
return result;
}
最后你完成了..在这里阅读更多
于 2016-12-19T12:42:09.563 回答