我需要在Java中合并两个图像(BufferedImage).如果没有透明度,这不会是一个问题.基本图像已经具有一定的透明度.我希望保持原样并对其应用"掩码",即第二张图像.第二个图像没有不透明像素,实际上它几乎完全透明,只是有一些不太透明的像素来提供某种"光效",就像反射一样.重要细节:我不想在屏幕上执行此操作,使用图形,我需要获得带有合并的BufferedImage.
谁能帮我?谢谢!
细节:合并两个保持透明度的图像.这就是我需要做的.
注意:Java中的Set BufferedImage alpha掩码不能满足我的要求,因为它不能很好地处理具有透明度的两个图像 - 它会修改第一个图像透明度.
我想在我确定的坐标处将图像放在捕获的视频帧上.
我问那之前,我已被告知使用cvCopy和cvSetImageROI,但我不想裁剪这些坐标我想添加其他图像.也许这是正确的方式,但我不理解它(如果它的权利请解释).
如何叠加两张图片?基本上我有一个没有alpha通道的背景,而不是一个或多个alpha通道需要叠加在一起的图像.
我尝试了以下代码,但覆盖结果很糟糕:
// create our out image
Mat merged (info.width, info.height, CV_8UC4);
// get layers
Mat layer1Image = imread(layer1Path);
Mat layer2Image = imread(layer2Path);
addWeighted(layer1Image, 0.5, layer2Image, 0.5, 0.0, merged);
Run Code Online (Sandbox Code Playgroud)
我也试过使用合并,但我在某处读到它不支持alpha通道?
c++ ×2
opencv ×2
alpha ×1
android ×1
android-ndk ×1
c ×1
image ×1
java ×1
transparency ×1
watermark ×1