虽然我们的程序一般都是和数据打交道,但偶尔也要对图片做些操作。今天这篇博客,就是对Image的操作,包括生成缩略图、加文字水印、加图片水印、图片和二进制流互转、图片和Base64互转、图片和WebP互转,还能将Svg图片转为普通的图片
PS:文末提供源码下载
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,下载即可
//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
//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);
源码下载
相关阅读
文章评论