嗨,我试图搜索这个但不是很幸运最相似的是这个 http://ketankantilal.blogspot.com/2011/03/how-to-combine-images-and-store-to.html 无论如何,我正在为安卓开发。问题是我有 png 格式的图像(或 jpg,因为 bmp 对于我的应用程序来说非常大)。如何从上到下组合三个图像。我不需要将它们保存在 sd 上只是为了显示它们。谢谢,如果存在类似的问题和答案,对不起。
问问题
1090 次
1 回答
2
您可以使用画布,然后使用适当的顶部和左侧偏移量绘制每个位图(假设每个图像都加载到位图对象中)。
您将通过先前绘制的位图的总大小来增加下一个位图的顶部偏移量。
查看http://developer.android.com/reference/android/graphics/Canvas.html
例子:
public void stackImages(Context ctx)
{
// base image, if new images have transparency or don't fill all pixels
// whatever is drawn here will show.
Bitmap result = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
// b1 will be on top
Bitmap b1 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);
// b2 will be below b1
Bitmap b2 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(result);
c.drawBitmap(b1, 0f, 0f, null);
// notice the top offset
c.drawBitmap(b2, 0f, 200f, null);
// result can now be used in any ImageView
ImageView iv = new ImageView(ctx);
iv.setImageBitmap(result);
// or save to file as png
// note: this may not be the best way to accomplish the save
try {
FileOutputStream out = new FileOutputStream(new File("some/file/name.png"));
result.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
}
于 2012-05-17T17:21:12.217 回答