我将如何在 GDI+ 中模仿 this 半色调效果?
它几乎看起来像是覆盖完整图像的 Floyd–Steinberg 抖动版本,但我不相信。
最佳答案
我试了一下,得到了这个结果:
这可能是一个开始的地方。我是这样做的:
矩阵)
使用图案掩码(即点)
我创建了这样的图案蒙版:
using (var g = Graphics.FromImage(bmpPattern))
{
g.Clear(Color.Black);
g.SmoothingMode = SmoothingMode.HighQuality;
for (var y = 0; y < bmp.Height; y += 10)
for (var x = 0; x < bmp.Width ; x += 6)
{
g.FillEllipse(Brushes.White, x, y, 4, 4);
g.FillEllipse(Brushes.White, x + 3, y + 5, 4, 4);
}
}
然后我使用 this technique 将它强加在过饱和的位图上。
更新 :详细说明图像如何合并。让我们更一般地讨论一下,假设我们想使用图案蒙版组契约(Contract)一图像的两个不同着色版本,从而产生一个新图像 - 我们可以这样做:
创建三个新的位图,它们的大小都与原始图像相同。称它们为 bmpA、bmpB 和 bmpMask。
transferOneARGBChannelFromOneBitmapToAnother 方法。
完毕
关于c# - gdi+ 中的半色调效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8882512/