zoukankan
html css js c++ java
利用GDI+分割图片,在图片上加字
System.Drawing.Image img;
System.Drawing.Graphics g;
System.Drawing.Bitmap bmp;
img
=
System.Drawing.Image.FromFile(filename);
if
(img.Width
!=
768
||
img.Height
!=
928
)
return
""
;
if
(
!
BakFilePath.Equals(
"
nobak
"
)
&&
!
File.Exists(
this
.BakFilePath
+
Path.GetFileName(filename)) )
File.Copy(filename,
this
.BakFilePath
+
Path.GetFileName(filename));
bmp
=
new
Bitmap(
1536
,
304
,System.Drawing.Imaging.PixelFormat.Format24bppRgb);
g
=
System.Drawing.Graphics.FromImage(bmp);
g.DrawImage(img,
0
,
0
,
new
Rectangle(
0
,
608
,
768
,
304
),GraphicsUnit.Pixel);
//
取第三张
g.DrawImage(img,
768
,
0
,
new
Rectangle(
0
,
304
,
768
,
304
),GraphicsUnit.Pixel);
//
第一张
/**/
/*
************************加字******************************
*/
SolidBrush drawBrush
=
new
SolidBrush(Color.Red);
Font drawFont
=
new
Font(
"
Arial
"
,
4
, FontStyle.Regular, GraphicsUnit.Millimeter);
float
xPos
=
550
;
float
yPos
=
0
;
decimal
Speed,SpeedP;
Speed
=
decimal
.Parse(PicConvert.LoadConfig(
"
Speed
"
));
SpeedP
=
decimal
.Parse(PicConvert.LoadConfig(
"
SpeedP
"
));
//
g.DrawString("限速"+Speed+"公里/小时 超速百分比:"+SpeedP+"%", drawFont, drawBrush, xPos, yPos);
g.DrawString(
"
限速:
"
+
Speed
+
"
公里 超速:
"
+
SpeedP
+
"
%
"
, drawFont, drawBrush, xPos, yPos);
//
newbmp=new Bitmap(bmp,1536,592);
/**/
/*
************************加字******************************
*/
/**/
/*
*******************************************************************
*/
//
ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders();
//
//
ImageCodecInfo ici=null;
//
foreach(ImageCodecInfo codec in codecs)
//
{
//
if(codec.MimeType=="image/jpeg")
//
ici=codec;
//
}
//
//
EncoderParameters ep=new EncoderParameters();
//
ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)25);
//
newbmp.Save(this.DesFilePath+@"\"+newfilename,ici,ep);
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
//
Create a Bitmap object based on a BMP file.
myBitmap
=
new
Bitmap(bmp,
1536
,
592
);
//
Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo
=
GetEncoderInfo(
"
image/jpeg
"
);
//
Create an Encoder object based on the GUID
//
for the Quality parameter category.
myEncoder
=
Encoder.Quality;
//
Create an EncoderParameters object.
//
An EncoderParameters object has an array of EncoderParameter
//
objects. In this case, there is only one
//
EncoderParameter object in the array.
myEncoderParameters
=
new
EncoderParameters(
1
);
//
Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter
=
new
EncoderParameter(myEncoder,
40L
);
myEncoderParameters.Param[
0
]
=
myEncoderParameter;
myBitmap.Save(
this
.DesFilePath
+
@"
\
"
+
newfilename, myImageCodecInfo, myEncoderParameters);
//
//
Save the bitmap as a JPEG file with quality level 50.
//
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
//
myEncoderParameters.Param[0] = myEncoderParameter;
//
myBitmap.Save(this.DesFilePath+@"\"+"Shapes050"+newfilename, myImageCodecInfo, myEncoderParameters);
//
//
Save the bitmap as a JPEG file with quality level 75.
//
myEncoderParameter = new EncoderParameter(myEncoder, 75L);
//
myEncoderParameters.Param[0] = myEncoderParameter;
//
myBitmap.Save(this.DesFilePath+@"\"+"Shapes075"+newfilename, myImageCodecInfo, myEncoderParameters);
/**/
/*
***************************************************
*/
//
newbmp.Save(this.DesFilePath+@"\"+newfilename,System.Drawing.Imaging.ImageFormat.Jpeg);
myBitmap.Dispose();
bmp.Dispose();
g.Dispose();
img.Dispose();
File.Delete(filename);
return
newfilename;
查看全文
相关阅读:
jenkins的目录介绍
Docker 配置国内镜像加速器
jquery----TreeTable
java web----jsp语法
Spring MVC----@ResponseBody注解(json)
jquery----datatables
java web----jsp自定义标签
js----单步调试
jquery----查找标签
jquery----icheck插件
原文地址:https://www.cnblogs.com/lidune/p/546747.html
最新文章
记NOIP2018
LG3953 逛公园
test20181102 空间复杂度 和 test20181030 数独
45.VUE学习之--组件之父组件使用scope定义子组件模板样式结构实例讲解
40.VUE学习之--组件之间的数据传参父组件向子组件里传参,props的使用实例操作
43_2.VUE学习之--不使用组件computed计算属性超简单的实现美团购物车原理
39.VUE学习--组件,子组件中data数据的使用,x-template模板的使用,改变for循环里的某条数据里的值
38.VUE学习之-全局组件和局部组件
11.VUE学习之提交表单时拿到input里的值
千锋教育Vue组件--vue基础的方法
热门文章
thinkphp5控制器向+vue的data里传值
vue 点击当前元素添加class 去掉兄弟的class
vue 改变我们插值的符号{{}}改为${}
python编码问题:UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 68: illegal multibyte sequence
Pycharm使用技巧
httprunner
执行sudo apt-get update,连接失败
启动docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
docker挂载目录问题:touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied
docker启动jenikns,提示 :This image is for research only, DO NOT USE
Copyright © 2011-2022 走看看