问题
我有两个 png 图像文件,我希望我的 android 应用程序以编程方式组合成一个 png 图像文件,我想知道是否可以这样做?如果是这样,我要做的就是将它们堆叠在一起以创建一个文件。
这背后的想法是我有一些 png 文件,一些图像的左侧部分透明,而另一些图像的右侧部分透明。根据用户输入,它将两者组合到一个文件中进行显示。 (我不能只是并排显示两个图像,它们必须是一个文件)
在android中这可能以编程方式吗?这怎么可能?
回答
一段时间以来,我一直在想办法解决这个问题。
这是(本质上)我用来让它工作的代码。
- // Get your images from their files
- Bitmap bottomImage = BitmapFactory.decodeFile("myFirstPNG.png");
- Bitmap topImage = BitmapFactory.decodeFile("myOtherPNG.png");
- // As described by Steve Pomeroy in a previous comment,
- // use the canvas to combine them.
- // Start with the first in the constructor..
- Canvas comboImage = new Canvas(bottomImage);
- // Then draw the second on top of that
- comboImage.drawBitmap(topImage, 0f, 0f, null);
- // comboImage is now a composite of the two.
- // To write the file out to the SDCard:
- OutputStream os = null;
- try {
- os = new FileOutputStream("/sdcard/DCIM/Camera/" + "myNewFileName.png");
- comboImage.compress(CompressFormat.PNG, 50, os)
- } catch(IOException e) {
- e.printStackTrace();
- }
复制代码
编辑:
有错别字,
所以,我改变了
image.compress(CompressFormat.PNG, 50, os)
到达
bottomImage.compress(CompressFormat.PNG, 50, os)
|