代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
处理文字图片
作者:
一铛
/ 发布于
2015/5/6
/
901
#region 处理文字图片 private void AddTextToImg(string filename, string word, string font, float size, Color col, bool blod, bool italic, bool underline, float alpha, ImagePosition wordposition) { //原始图片 Image imgPhoto = Image.FromFile(filename); //获取图片的高和宽 int phWidth = imgPhoto.Width; int phHeight = imgPhoto.Height; //建立一个位图需要加水印大小的图片 Bitmap bmPhoto = new Bitmap(phWidth, phHeight, PixelFormat.Format24bppRgb); //设置Bitmap分辨率 bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution); //Graphics:封装一个 GDI+ 绘图图面。 Graphics grPhoto = Graphics.FromImage(bmPhoto); //设置图形的品质 grPhoto.SmoothingMode = SmoothingMode.AntiAlias; //将我们要添加水印的图片按照原始大小描绘(复制)到图形中 grPhoto.DrawImage( imgPhoto, // 要添加水印的图片 new Rectangle(0, 0, phWidth, phHeight), // 根据要添加的水印图片的宽和高 0, // X方向从0点开始描绘 0, // Y方向 phWidth, // X方向描绘长度 phHeight, // Y方向描绘长度 GraphicsUnit.Pixel); // 描绘的单位,这里用的是像素 //字体 Font crFont = null; //矩形的宽度和高度,SizeF有三个属性,分别为Height高,width宽,IsEmpty是否为空 SizeF crSize = new SizeF(); //利用一个循环语句来选择我们要添加文字的型号 //直到它的长度比图片的宽度小 for (int i = 0; i < word.Length - 1; i++) { if (blod == true) crFont = new Font(font, size, FontStyle.Bold); else if (italic == true) crFont = new Font(font, size, FontStyle.Italic); else if (underline == true) crFont = new Font(font, size, FontStyle.Underline); else crFont = new Font(font, size); //测量用指定的 Font 对象绘制并用指定的 StringFormat 对象格式化的指定字符串。 crSize = grPhoto.MeasureString(word, crFont); // ushort 关键字表示一种整数数据类型 if ((ushort)crSize.Width < (ushort)phWidth) break; } //截边5%的距离,定义文字显示(由于不同的图片显示的高和宽不同,所以按百分比截取) int yPixlesFromBottom = (int)(phHeight * .05); float[] wordPosition = PicPosition(wordposition, phWidth, phHeight, crSize.Width, crSize.Height); float xPosOfWm = float.Parse(wordPosition[0].ToString()); float yPosOfWm = float.Parse(wordPosition[1].ToString()); //封装文本布局信息(如对齐、文字方向和 Tab 停靠位),显示操作(如省略号插入和国家标准 (National) 数字替换)和 OpenType 功能。 StringFormat StrFormat = new StringFormat(); //定义需要印的文字居中对齐 StrFormat.Alignment = StringAlignment.Center; //SolidBrush:定义单色画笔。画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。 //这个画笔为描绘阴影的画笔,呈灰色 int m_alpha = Convert.ToInt32(255 * alpha); SolidBrush writeBrush = new SolidBrush(Color.FromArgb(m_alpha, 0, 0, 0)); //描绘文字信息,这个图层向右和向下偏移一个像素,表示阴影效果 //DrawString 在指定矩形并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。 grPhoto.DrawString(word, //string of text crFont, //font writeBrush, //Brush new PointF(xPosOfWm + 1, yPosOfWm + 1), //Position StrFormat); //从四个 ARGB 分量(alpha、红色、绿色和蓝色)值创建 Color 结构,这里设置透明度为153 //这个画笔为描绘正式文字的笔刷,呈白色 SolidBrush blackBrush = new SolidBrush(col); //第二次绘制这个图形,建立在第一次描绘的基础上 grPhoto.DrawString(word, //string of text crFont, //font blackBrush, //Brush new PointF(xPosOfWm, yPosOfWm), //Position StrFormat); grPhoto.Dispose(); SavePicFormat(bmPhoto, cobPicFomart.SelectedIndex, filename, pbWordWaterMark, txtPicName.Text); imgPhoto.Dispose(); } #endregion
试试其它关键字
文字图片
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
一铛
贡献的其它代码
(
12
)
.
判断Office版本
.
将Excel导成xml文件
.
处理图片水印
.
处理文字图片
.
生成缩略图
.
图片文字放置位置
.
保存不同类型的格式的图片和路径
.
TextBox控件设置ReadOnly="true"后台取不到值
.
confirm alert 换行
.
导出word 和中文乱码
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3