我该如何去模仿this http://www.juicybitssoftware.com/halftone/GDI+ 中的半色调效果?
它几乎看起来像弗洛伊德-斯坦伯格 http://en.wikipedia.org/wiki/Floyd%E2%80%93Steinberg_dithering图像的抖动版本覆盖了完整的图像,但我不相信。
I gave this a try and got this result:
这可能是一个起点。我是这样做的:
- 绘制低饱和度的原图(使用颜色
矩阵)
- 将原始图像以高饱和度绘制到1)上
使用图案掩模(即点)
我创建了这样的图案蒙版:
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);
}
}
然后我使用它将其强加在过饱和的位图上这项技术 http://danbystrom.se/2008/08/24/soft-edged-images-in-gdi/.
Update:详细说明图像如何合并。让我们更笼统地说一下,我们想使用图案蒙版组合同一图像的两个不同颜色版本,从而生成一个新图像 - 我们可以这样做:
创建三个新位图,所有位图的大小都与原始图像相同。将它们称为 bmpA、bmpB 和 bmpMask。
- 将一种颜色/效果版本绘制到 bmpA 中
- 将其他颜色/效果版本绘制到bmpB中
- 在 bmpMask 中创建蒙版(黑白)
- 使用以下命令将 bmpMask 的 R/G/B 通道之一推入 bmpB 的 alpha 通道
传输OneARGBChannelFromOneBitmapToAnother 方法。
- 在 bmpA 上绘制 bmpB(因为 bmpB 现在有透明部分)
- 现在的结果是 bmpA。 bmpB 和 bmpMask 可以被处理。
Done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)