如何合并 Alpha 蒙版和 RGB 图像
How to merge Alpha mask and RGB image
我有两张图片。
一个是 RGB 文件,另一个是 Alpha 通道文件。
from PIL import Image
name = 'char_101_sora_2'
image = name+'.png'
mask = name+'[alpha].png'
img = Image.open(image)
mas = Image.open(mask)
pixdata_img = img.load()
pixdata_mas = mas.load()
for y in range(mas.size[1]):
for x in range(mas.size[0]):
pixdata_img[x, y] = (pixdata_img[x, y][0], pixdata_img[x, y][1], pixdata_img[x, y][2], pixdata_mas[x, y][2])
此代码是Python执行此操作的。
但是我看不懂,谁能解释一下或者改写成Java?
for (int h = 0; h < image.getHeight(); h++) {
for (int w = 0; w < image.getWidth(); w++) {
skadi.setRGB(w, h,
(((alpha.getRGB(w, h)) & 0xFF) << 24) |
(((image.getRGB(w, h) >> 16) & 0xFF) << 16) |
((((image.getRGB(w, h) >> 8) & 0xFF) << 8) |
(image.getRGB(w, h) & 0xFF)));
}
}
下面是这个问题的简单解答。
也在这里:Merge Alpha Mask and RGB Image with Java
我有两张图片。 一个是 RGB 文件,另一个是 Alpha 通道文件。
from PIL import Image
name = 'char_101_sora_2'
image = name+'.png'
mask = name+'[alpha].png'
img = Image.open(image)
mas = Image.open(mask)
pixdata_img = img.load()
pixdata_mas = mas.load()
for y in range(mas.size[1]):
for x in range(mas.size[0]):
pixdata_img[x, y] = (pixdata_img[x, y][0], pixdata_img[x, y][1], pixdata_img[x, y][2], pixdata_mas[x, y][2])
此代码是Python执行此操作的。 但是我看不懂,谁能解释一下或者改写成Java?
for (int h = 0; h < image.getHeight(); h++) {
for (int w = 0; w < image.getWidth(); w++) {
skadi.setRGB(w, h,
(((alpha.getRGB(w, h)) & 0xFF) << 24) |
(((image.getRGB(w, h) >> 16) & 0xFF) << 16) |
((((image.getRGB(w, h) >> 8) & 0xFF) << 8) |
(image.getRGB(w, h) & 0xFF)));
}
}
下面是这个问题的简单解答。
也在这里:Merge Alpha Mask and RGB Image with Java