吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2229|回复: 1
收起左侧

[求助] c# 添加文字水印

[复制链接]
hano7758 发表于 2019-7-27 12:09
最近有个需求给图片加文字斜文字水印。并且需要铺满图片。
网上找的添加水印都是横的,并且是固定位置,只能自己写
[Asm] 纯文本查看 复制代码
Bitmap bitmap = new Bitmap(image);
                    //图片的宽度与高度
                    int width = bitmap.Width, height = bitmap.Height;
                    //水印文字
                    Graphics g = Graphics.FromImage(bitmap);
                    g.DrawImage(bitmap, 0, 0);
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
                    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    g.DrawImage(image, new Rectangle(0, 0, width, height), 0, 0, width, height, GraphicsUnit.Pixel);
                    Font crFont = new Font("微软雅黑", 22, FontStyle.Bold);
                    SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(255, 137, 131, 131));
                    //将原点移动 到图片中点
                    g.TranslateTransform(-80, 150);
                    //以原点为中心 转 -45度
                    g.RotateTransform(-45);
                    for (int i = 0; i < 50; i++)
                    {
                        g.DrawString(text, crFont, semiTransBrush, new PointF(0 - i * 300, 100 + i * 300));
                        g.DrawString(text, crFont, semiTransBrush, new PointF(150 - i * 300, 500 + i * 300));
                        g.DrawString(text, crFont, semiTransBrush, new PointF(650 - i * 300, 600 + i * 300));
                    }
                    //保存文件
                    bitmap.Save(sImgPath, ImageFormat.Jpeg);



这代码的缺陷是,图片加的文字水印可能长,可能短,
如果图片分辨率高水印可能就占图片的左三分之一,分辨率低文字水印就出现前几个字。
有没有大神有更好的添加水印方法

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

gana 发表于 2019-7-27 13:46
根据图片分辨率,动态调整水印文字字体大小。
看你的代码,应该是水印斜角45度,排了50行,每行三个。如果你要适配不同分辨率,那么这部分代码也要根据分辨率动态计算位置,每行水印数量和水印行数。

另一种方案,可以将文字水印转换为背景透明的图片,根据分辨率直接缩放贴图。或者根据分辨率生成合适大小的图片,贴图
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 03:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表