C#指定图片添加文字
程序员文章站
2022-07-16 19:17:17
...
using System.Drawing;
using System.IO;
using UnityEngine;
public class TestImage : MonoBehaviour
{
private string filePath;
// Use this for initialization
void Start()
{
filePath = @Application.streamingAssetsPath + "/test.jpg";
AddTextToImg("卧槽啊!小贱!");
}
// Update is called once per frame
void Update()
{
}
/// <summary>
/// 指定图片添加指定文字
/// </summary>
/// <param name="text">添加的文字</param>
/// <param name="picname">生成文件名</param>
private void AddTextToImg(string text)
{
//判断指定图片是否存在
if (!File.Exists(filePath))
{
throw new FileNotFoundException("The file don't exist!");
}
if (text == string.Empty)
{
return;
}
Image image = Image.FromFile(filePath);
Bitmap bitmap = new Bitmap(image, image.Width, image.Height);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
//字体大小
float fontSize = 40.0f;
//文本的长度
float textWidth = text.Length * fontSize;
//下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float rectX = 120;
float rectY = 200;
float rectWidth = text.Length * (fontSize + 40);
float rectHeight = fontSize + 40;
//声明矩形域
RectangleF textArea = new RectangleF(rectX, rectY, rectWidth, rectHeight);
//定义字体
System.Drawing.Font font = new System.Drawing.Font("微软雅黑", fontSize, System.Drawing.FontStyle.Bold);
//font.Bold = true;
//白笔刷,画文字用
Brush whiteBrush = new SolidBrush(System.Drawing.Color.DodgerBlue);
//黑笔刷,画背景用
//Brush blackBrush = new SolidBrush(Color.Black);
//g.FillRectangle(blackBrush, rectX, rectY, rectWidth, rectHeight);
g.DrawString(text, font, whiteBrush, textArea);
//输出方法一:将文件生成并保存到C盘
string path = @Application.streamingAssetsPath + "/test2.jpg";
bitmap.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
}