合并两个具有透明度的png图像并保留透明度
本文关键字:透明度 png 图像 保留 两个 合并 | 更新日期: 2023-09-27 18:03:34
可能重复:
在C#/.NET 中合并两个图像
我有两个png格式的图像,并且都定义了透明度。我需要将这些合并到一个新的png图像中,但不会失去任何透明度。将第一个图像想象为主图像,第二个图像用于添加覆盖,例如添加/编辑/删除指示符。我正在尝试创建一个小实用程序,它将获取一个主图像和一组覆盖图,然后生成组合它们的输出图像集。
PHP的解决方案似乎有很多答案,但C#/
这应该可以工作。
Bitmap source1; // your source images - assuming they're the same size
Bitmap source2;
var target = new Bitmap(source1.Width, source1.Height, PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(target);
graphics.CompositingMode = CompositingMode.SourceOver; // this is the default, but just to be clear
graphics.DrawImage(source1, 0, 0);
graphics.DrawImage(source2, 0, 0);
target.Save("filename.png", ImageFormat.Png);
不幸的是,您没有提到如何获得像素,
所以p码:
// The result will have its alpha chanell from "first",
// the color channells from "second".
assert (first.width = second.width)
assert (first.height = second.height)
for y in 0..height
for x in 0..width
RGBA col_first = first(x,y)
RGBA col_second = second(x,y)
result(x,y) = RGBA(col_second.r,
col_second.g,
col_second.b,
col_first.a ))