小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

net中c#教程 image图形操作,支持webp和svg格式

2022年11月17日 2935点热度 1人点赞 0条评论

虽然我们的程序一般都是和数据打交道,但偶尔也要对图片做些操作。今天这篇博客,就是对Image的操作,包括生成缩略图、加文字水印、加图片水印、图片和二进制流互转、图片和Base64互转、图片和WebP互转,还能将Svg图片转为普通的图片

PS:文末提供源码下载

c#图形操作

1、生成Color对象,根据字符串
支持以下3种结构,都可以解析

string imageFile1 = @"d:\img-test1.jpg";
string imageFile2 = @"d:\img-test2.jpg";

//(ok)1,获取Color对象,根据字符串
Color color11 = ImageHelper.GetColorByName("ff00ff00");
Color color12 = ImageHelper.GetColorByName("IndianRed");
Color color13 = ImageHelper.GetColorByName("204,255,204");

2、图片和二进制互转

//(ok)2,图片和二进制互转
byte[] imageBytes21 = ImageHelper.SetImageToBytes(imageFile1);

string imageFile22 = @"d:\img-res2.jpg";
ImageHelper.CreateImage(imageFile22, imageBytes21);

 

3、图片和Base64互转
WebAPI交互时经常使用,也可以用于上传文件。转成字符串的话,可以批量操作

//(ok)3,图片和Base64互转
string imageBase64 = ImageHelper.SetImageToBase64(imageFile1);

string imageFile3 = @"d:\img-res3.jpg";
Image imageObj3 = ImageHelper.GetImageByBase64(imageBase64);
imageObj3.Save(imageFile3);

4、生成缩略图
能生成指定尺寸的图片,生成模式包括成比例缩放、根据宽度和高度等

//(ok)4,生成缩略图
string imageFile4 = @"d:\img-res4.jpg";
ImageHelper.MakeThumbnail(imageFile1, imageFile4, 172, 118, ImageThumbnailMode.W);

5、增加水印,根据文字

//(ok)5,增加水印(文字)
ImageHelper.WatermarkImageByLetter(imageFile1, 32, "羽毛球档案", Color.White, MetaCodeEnum.ImageLocation.T.ToString());

6、增加水印,根据图片

//6,(ok)增加水印(图片)
string qrcodeFile = @"d:\img-qrcode.jpg";
string targetFile6 = @"d:\img-res6.jpg";
ImageHelper.WatermarkImageByImage(imageFile1, qrcodeFile, MetaCodeEnum.ImageLocation.RB.ToString(), targetFile6);

7、马赛克处理

//7,(ok)马赛克处理
Image imgObj7 = Image.FromFile(imageFile1);
Bitmap bmpObj7 = ImageHelper.MosaicImage(imgObj7, MetaCodeEnum.ImageLocation.LB.ToString(), 100, 50);
string targetFile7 = @"d:\img-res7.jpg";
bmpObj7.Save(targetFile7);

8、截取图片

//8,(ok)截取图片
string targetFile8 = @"d:\img-res8.jpg";
ImageHelper.ClipImage(imageFile1, 0, 0, 150, 150, targetFile8);

9、合并图片

//9,(ok)合并图片
string targetFile9 = @"d:\img-res9.jpg";
ImageHelper.ComboImage(imageFile1, imageFile2, targetFile9, 1);

10、Webp和图片互转
需额外下载类库,Nuget里搜索:Imazen.WebP,下载即可

Imazen.WebP安装

//10.1,(ok)webp转为jpg图片
string webpFile101 = @"d:\img-test3.webp";
string targetFile101 = @"d:\img-res101.jpg";
ImageHelper.ImageByWebP(webpFile101, targetFile101);

//10.2,(ok)jpg图片转为webp
string webpFile102 = @"d:\img-res102.webp";
ImageHelper.ImageToWebP(imageFile1, webpFile102);

11、svg图片转png
需额外下载类库,Nuget里搜索:svg

svg安装包

//11,(ok)svg图片转png
    string svgFile11 = @"d:\img-test4.svg";
    string targetFile11 = @"d:\img-res11.jpg";
    ImageHelper.ImageBySvg(svgFile11, targetFile11);

12、图片转string

//12,(ok)图片转string
  string imageFile = @"d:\test-img1.jpg";
  Image imageObj = Image.FromFile(imageFile);
  string imageStr = ImageHelper.ImageToAscii(imageObj, 16, 16, 2);

13、获取图片真正格式

//13,(ok)获取图片真正格式
ImageFileExtension imgFileExt = ImageHelper.CheckImageType(imageFile1);

 

源码下载

ImageHelper.rar

 

相关阅读

net中c#教程 不同格式的csv文件如何导入?

net中c#教程 如何获取系统的环境变量?

net中c#教程 file文件的常用操作

标签: c#操作 net教程 svg转图片 图片加水印 图片和Base64互转 图片和Webp互转 图片操作 缩略图
最后更新:2022年11月17日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2