在 Paint.NET 中,我想使用填充工具更改图标的颜色,但我想保留像素的 alpha 通道。Photoshop也有同样的问题,但我找不到 Paint.NET 的解决方案。
填写前:
填写后:
如您所见,半透明像素失去了它们的 alpha 通道值。有没有办法在 Paint.NET 中实现这一点?
在 Paint.NET 中,我想使用填充工具更改图标的颜色,但我想保留像素的 alpha 通道。Photoshop也有同样的问题,但我找不到 Paint.NET 的解决方案。
填写前:
填写后:
如您所见,半透明像素失去了它们的 alpha 通道值。有没有办法在 Paint.NET 中实现这一点?
这也是我一直在寻找的东西。该代码几乎与CodeLab 教程第 1 部分 - 简单 插件演练的示例代码相同。所以几分钟后,现在有一个简单的插件可以直接从 Paint.NET 完成这项工作。
https://github.com/friedrickjoel/AlphaColor/raw/main/AlphaColor.dll
作为一名开发人员,我刚刚编写了一个小 C# 程序来为我执行此任务:
public class Program
{
public const string IMAGE = @"logo.png";
public static void Main(string[] args)
{
Color targetColor = Color.FromArgb(0, 3, 143, 106);
using (var image = Bitmap.FromFile(IMAGE))
{
using (var bmp = new Bitmap(image))
{
for (int x = 0; x < image.Width; x++)
{
for (int y = 0; y < image.Height; y++)
{
var alpha = bmp.GetPixel(x, y).A;
bmp.SetPixel(x, y, Color.FromArgb(alpha, targetColor.R, targetColor.G, targetColor.B));
}
}
bmp.Save("icon.png", ImageFormat.Png);
}
}
}
}
我已经尝试并未能找到直接在 Paint.NET 3.36 中执行此操作的方法。
您不能通过填充选区来做到这一点,因为选区仅包含整个像素,而不是 alpha。魔棒工具上的容差设置仅确定选择整个像素的颜色阈值。
你也不能用上面的“填充”层来伪造它,因为你不能使用原始层作为蒙版。
我认为您可以做的最接近的事情是使用“调整”>“曲线”来改变像素的色调,但这是一种间接的方式,并且很难达到给定的目标颜色(尽管使用一点数学)。
但是,您可以渲染 Mandelbrot 和 Julia 分形!