合并两个位图的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两个位图的问题相关的知识,希望对你有一定的参考价值。

我正在尝试在另一个上添加一个位图(png文件),然后将其保存到设备中。除了第一部分外,一切正常。

我的代码比特:

1将加载的文件转换为位图

loadedBitmap = e.target.content as Bitmap;
clonedBitmap = new Bitmap(loadedBitmap.bitmapData.clone());

bitmapData = new BitmapData(e.target.content.width, e.target.content.height);
bitmapData.draw(clonedBitmap);

在应用程序中生成2秒位图

genBitmapData = new BitmapData(bgWidth, bgHeight, false);
genBitmap = new Bitmap(genBitmapData);

3将clonedBitmap(外部文件)添加到bitmapdata

var positionMatrix : Matrix = new Matrix(1,0,0,1,0,0);
genBitmapData.draw(clonedBitmap, positionMatrix);

第三步的问题是加载的文件clonedBitmap最终位于应用程序将其保存到设备存储时生成的位图下。当我颠倒顺序时:

bitmapData.draw(genBitmap, positionMatrix);

在保存文件时,只有生成的位图显示/可见,而加载的位图根本不可见。我想要实现的是将clonedBitmap(外部png文件)放在genBitmap之上并使用BitmapData对象保存,这样我就可以将它保存到我的设备中。

我会很感激任何提示。

答案

在位图上绘制位图时,需要覆盖的位图在某处是透明的,否则所有较低位图的像素都将被上层覆盖。因此,使用alpha通道(t​​ransparency = true)创建这些位图,确保上层位图在其上绘制某个东西(至少在某处)后也是透明的,然后在单个BitmapData对象上绘制第一个下层然后上层。

请注意,由于您不转换任何位图,因此最好使用BitmapData.copyPixels()方法。

另一答案

事实证明代码工作正常。我只是忽略了它并将其置于错误的功能中,这导致了这个问题。

以上是关于合并两个位图的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在两个片段之间传递位图? (我正在使用 Android 导航组件)

如何合并具有特定移位(偏移)的两个位图?

bitmap 合并图片

将两个图像合并为一个方向问题

13 个非常有用的 Python 代码片段

如何融合两个 16 位图像