我想在具有叠加混合效果的图像上写入文本。不是简单的透明度,而是将图像的像素与文本的颜色混合在一起。
我有这个函数,可以在图像上写入文本,但这只使用简单的透明度。
grPhoto.DrawString(strText, //string of text
crFont, //font
semiTransBrush, //Brush
new PointF(xCenterOfImg,yPosFromBottom), //Position
StrFormat); //Text alignment
下面是 Photoshop 在使用叠加混合时用于计算像素值的公式。您可能需要自己计算混合过程中的每个像素 - 我不相信 GDI+ 对混合有如此具体的支持。(我可能是错的,自从我使用 GDI+ 以来已经有一段时间了。
Paint.NET 使用类似的算法来实现其叠加混合 - 反射器可能能够为您提供想法。