从字体文件获取到System.Drawing.Font对象

2 篇文章 0 订阅

有时候我们不想安装字体,而获取到System.Drawing.Font对象即可以使用下面的方法即可。。

  public static System.Drawing.Font GetFont(string fontFileName, float fontSize)
        {
            var pfc = new System.Drawing.Text.PrivateFontCollection();
            pfc.AddFontFile(fontFileName);
            //实例化字体             
            return new System.Drawing.Font(pfc.Families[0], fontSize);
        }

如果想获取已安装的字体则用下面的方法即可:

new System.Drawing.Text.InstalledFontCollection().Families;

还有在 System.Windows.Media; 也提供了相关字体的方法,不过需要引用PresentationCore.dll程序集哦。

//获取已安装的所有字体集合
System.Windows.Media.Fonts.SystemFontFamilies;
//根据文件获取FontFamily,根据文本的不同,可能有多个
System.Windows.Media.Fonts.GetFontFamilies(@"C:\Windows\Fonts\simsun.ttc");

 需要查看更多字体,请关注字体秀 字体_字库_字体秀_字体下载_字体查看_Font_字酷秀_字体大全_字体在线预览

使用 System.Drawing.Common 库可以很方便地为图片添加水印。您可以按照以下步骤来实现: 1. 加载原始图片 ```csharp Image originalImage = Image.FromFile("original.jpg"); ``` 2. 创建一个画布并在画布上绘制原始图片 ```csharp Bitmap bitmap = new Bitmap(originalImage.Width, originalImage.Height); Graphics graphics = Graphics.FromImage(bitmap); graphics.DrawImage(originalImage, 0, 0); ``` 3. 创建一个字体和一个画刷用于绘制水印 ```csharp Font font = new Font("Arial", 16, FontStyle.Bold, GraphicsUnit.Pixel); Brush brush = new SolidBrush(Color.FromArgb(128, 255, 255, 255)); ``` 4. 设置水印文本的位置和内容 ```csharp string watermarkText = "Watermark"; PointF watermarkPosition = new PointF(10, 10); ``` 5. 在画布上绘制水印文本 ```csharp graphics.DrawString(watermarkText, font, brush, watermarkPosition); ``` 6. 保存处理后的图片 ```csharp bitmap.Save("watermarked.jpg", ImageFormat.Jpeg); ``` 完整代码示例: ```csharp using System.Drawing; using System.Drawing.Imaging; namespace WatermarkExample { class Program { static void Main(string[] args) { // 加载原始图片 Image originalImage = Image.FromFile("original.jpg"); // 创建一个画布并在画布上绘制原始图片 Bitmap bitmap = new Bitmap(originalImage.Width, originalImage.Height); Graphics graphics = Graphics.FromImage(bitmap); graphics.DrawImage(originalImage, 0, 0); // 创建一个字体和一个画刷用于绘制水印 Font font = new Font("Arial", 16, FontStyle.Bold, GraphicsUnit.Pixel); Brush brush = new SolidBrush(Color.FromArgb(128, 255, 255, 255)); // 设置水印文本的位置和内容 string watermarkText = "Watermark"; PointF watermarkPosition = new PointF(10, 10); // 在画布上绘制水印文本 graphics.DrawString(watermarkText, font, brush, watermarkPosition); // 保存处理后的图片 bitmap.Save("watermarked.jpg", ImageFormat.Jpeg); } } } ``` 运行后,将在程序运行目录生成一个名为 `watermarked.jpg` 的水印图片。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值