Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry-将一个不可见的png位图置于另一个位图之上,作为新位图/图像_Blackberry_Blackberry Simulator_Blackberry Eclipse Plugin_Blackberry Jde - Fatal编程技术网

Blackberry-将一个不可见的png位图置于另一个位图之上,作为新位图/图像

Blackberry-将一个不可见的png位图置于另一个位图之上,作为新位图/图像,blackberry,blackberry-simulator,blackberry-eclipse-plugin,blackberry-jde,Blackberry,Blackberry Simulator,Blackberry Eclipse Plugin,Blackberry Jde,我有一个PNG图像,大部分是不可见的,包含一些水印,我们将要应用到另一个图像 我已将此PNG导入位图对象。我已经导入了第二个图像,作为第二个位图对象,该图像由设备摄像头拍摄 如何将PNG位图覆盖在第二个位图之上,保持PNG透明度并将生成的图像存储为新位图 我需要存储结果,因为我将以转换为base64字符串的字节数组形式将最终位图传递给Web服务 我以前使用过这个,但是混合会改变图像的不透明度,这不是我想要的,我希望两个图像都是100%不透明度,带有不可见的PNG ontop…基本上我想在位图上制

我有一个PNG图像,大部分是不可见的,包含一些水印,我们将要应用到另一个图像

我已将此PNG导入位图对象。我已经导入了第二个图像,作为第二个位图对象,该图像由设备摄像头拍摄

如何将PNG位图覆盖在第二个位图之上,保持PNG透明度并将生成的图像存储为新位图

我需要存储结果,因为我将以转换为base64字符串的字节数组形式将最终位图传递给Web服务

我以前使用过这个,但是混合会改变图像的不透明度,这不是我想要的,我希望两个图像都是100%不透明度,带有不可见的PNG ontop…基本上我想在位图上制作一个帧,并将其存储为新图像

公共静态位图混合(位图bi1、位图bi2、双重权重)
{
int width=bi1.getWidth();
int height=bi1.getHeight();
位图bi3=新位图(宽度、高度);
int[]rgbim1=新的int[宽度];
int[]rgbim2=新的int[宽度];
int[]rgbim3=新int[宽度];
for(int行=0;行高;行++)
{
bi1.getARGB(rgbim1,0,宽度,0,行,宽度,1);
bi2.getARGB(rgbim2,0,宽度,0,行,宽度,1);
for(int col=0;col width;col++)
{
int rgb1=rgbim1[col];
inta1=(rgb124)和255;
int r1=(rgb116)和255;
int g1=(rgb1 8)和255;
intb1=rgb1&255;
int rgb2=rgbim2[col];
INTA2=(rgb2 24)和255;
int r2=(rgb216)和255;
int g2=(rgb2 8)和255;
int b2=rgb2&255;
INTA3=(int)(a1*重量+a2*(1.0-重量));
int r3=(int)(r1*重量+r2*(1.0-重量));
int g3=(int)(g1*权重+g2*(1.0-权重));
int b3=(int)(b1*权重+b2*(1.0-权重));
rgbim3[col]=(a3 24)|(r3 16)|(g3 8)| b3;
}
bi3.setARGB(rgbim3,0,宽度,0,行,宽度,1);
}
返回bi3;
}

您可以通过创建管理器来实现这一点。使用managers paint方法绘制第一幅图像,并将第二幅(水印图像)作为位图字段添加到其中。它看起来像图像覆盖图像。

从第一个
位图
创建一个
图形
实例,并在该
图形
实例上绘制第二个
位图
(透明的)。