110,580
社区成员
发帖
与我相关
我的任务
分享
void Luminous(Graphics &g, int Fuzzy, Rect rectPaint, LPCWSTR Text, Rect Textrect, Font &TextFont, int FontColor, int ShadowColor)
{
Bitmap Bit1(rectPaint.Width, rectPaint.Height);
Graphics g1(&Bit1);
g1.SetSmoothingMode(SmoothingModeAntiAlias);
g1.SetTextRenderingHint(TextRenderingHintAntiAlias);
g1.SetCompositingQuality(CompositingQualityAssumeLinear);
Bitmap Bit2(rectPaint.Width / Fuzzy, rectPaint.Height/ Fuzzy);
Graphics g2(&Bit2);
g2.SetInterpolationMode(InterpolationModeHighQualityBicubic);
g2.SetPixelOffsetMode(PixelOffsetModeNone);
//布局
int cb = ShadowColor / 65536;
int cg = (ShadowColor - cb * 65536) / 256;
int cr = ShadowColor - (cb * 65536) - (cg * 256);
SolidBrush B(Color(255, cr, cg, cb));
GraphicsPath path;
FontFamily ftFamily;
TextFont.GetFamily(&ftFamily);
path.AddString(Text,-1,&ftFamily , (int)(FontStyleBold), TextFont.GetSize(), Textrect,NULL);
g1.FillPath(&B, &path);
//绘制文字
g2.DrawImage(&Bit1, 0, 0, rectPaint.Width/ Fuzzy, rectPaint.Height / Fuzzy);
g1.Clear(Color(0));
g1.DrawImage(&Bit2, 0, 0, rectPaint.Width, rectPaint.Height);
g1.SetTextRenderingHint(TextRenderingHintAntiAlias);
//发光字底图
GraphicsPath path1;
path1.AddString(Text,-1,&ftFamily, (int)(FontStyleBold),TextFont.GetSize(), Textrect,NULL/* new StringFormat()*/);
cb = FontColor / 65536;
cg = (FontColor - cb * 65536) / 256;
cr = FontColor - (cb * 65536) - (cg * 256);
B.SetColor(Color(255, cr, cg, cb));
g1.FillPath(&B, &path1);
//绘制文字
g.DrawImage(&Bit1, rectPaint.X, rectPaint.Y);
}