使用ImageProcessor、CodeCarvings.Piczard组件生成缩略图和添加水印
技术栈:
1.ImageProcessor(专业图像处理,不能合成水印,NetCore中有它的升级版ImageSharp目前是预览包)
2.CodeCarvings.Piczard(缩略图,水印都能搞得定)
代码:
-----------------------------------------------------------
#region 图片裁剪(缩略图/等比缩放/固定宽高)
var path = "E:\\test.jpg";
var outpath = "E:\\test_out400X400.jpg";
var outpath2 = "E:\\test_out2_400X400.jpg";
var waterpath = "E:\\watermark.jpg";
var wateroutpath = "E:\\test_out_watermark.jpg";
var bytes = File.ReadAllBytes(path);
using (Stream inStream = new MemoryStream(bytes))
{
//方式一,CodeCarvings.Piczard
ImageProcessingJob jobThumb = new ImageProcessingJob();
jobThumb.Filters.Add(new FixedResizeConstraint(400, 400));
jobThumb.SaveProcessedImageToFileSystem(inStream, outpath);
inStream.Position = 0;//指针复位
//方式二,ImageProcessor
using (ImageFactory imageFactory = new ImageFactory(true))
{
imageFactory.Load(inStream)
.Resize(new ResizeLayer(new Size(400, 400), ResizeMode.BoxPad, AnchorPosition.Center))
.BackgroundColor(Color.White)
.Quality(100)
.Save(outpath2);
}
inStream.Position = 0;//指针复位
}
#endregion
#region 图片水印
ImageWatermark imgWatermark = new ImageWatermark(waterpath);//水印图片位置
imgWatermark.ContentAlignment = ContentAlignment.MiddleCenter;//水印位置
imgWatermark.Alpha = 100;//透明度,需要水印图片是背景透明的png图片
ImageProcessingJob jobNormal = new ImageProcessingJob();
jobNormal.Filters.Add(imgWatermark);//添加水印
//jobNormal.Filters.Add(new FixedResizeConstraint(600, 600));//添加图片缩放,水印可能会不清晰
jobNormal.SaveProcessedImageToFileSystem(bytes, wateroutpath);
#endregion
-----------------------------------------------------------
参考:https://www.cnblogs.com/pengze0902/p/6569360.html
https://www.cnblogs.com/viplued/p/9289579.html
跨平台方案:https://www.cnblogs.com/chenug/p/6655745.html
http://www.cnblogs.com/AnkerZhang/p/9447815.html
使用ImageProcessor、CodeCarvings.Piczard组件生成缩略图和添加水印的更多相关文章
- C#如何生成缩略图、水印
1.安装CodeCarvings.Piczard Install-Package CodeCarvings.Piczard 2.生成缩略图 ImageProcessingJob jobThumb ...
- PHP-生成缩略图和添加水印图-学习笔记
1.开始 在网站上传图片过程,经常用到缩略图功能.这里我自己写了一个图片处理的Image类,能生成缩略图,并且可以添加水印图. 2.如何生成缩略图 生成缩略图,关键的是如何计算缩放比率. 这里,我根据 ...
- ASP组件AspJpeg(加水印)生成缩略图等使用方法
ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...
- Spring中MultipartHttpServletRequest实现文件上传 生成缩略图
转贴自:http://my.oschina.net/nyniuch/blog/185266 实现图片上传 用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons Fil ...
- C# webform上传图片并生成缩略图
其实里面写的很乱,包括修改文件名什么的都没有仔细去写,主要是想记录下缩略图生成的几种方式 ,大家明白就好! void UpImgs() { if (FileUpload1.HasFile) { str ...
- phpcms v9图片生成缩略图变成黑色解决方法
今天客户反映,上传的图片生成缩略图有的图片变成黑色,出现问题就百度了一下,有不少网友也遇到这样的问题,但是官方论坛也没有给出解决办法,那还得靠自己解决了,于是就研究phpcms v9 图片压缩代码.打 ...
- ngx_image_thumb模块生成缩略图
ngx_image_thumb是nginx中用来生成缩略图的模块. 编译前确定已经安装了libcurl-dev libgd2-dev libpcre-dev gd-devel pcre-devel l ...
- js无刷新上传图片,服务端有生成缩略图,剪切图片,iphone图片旋转判断功能
html: <form action="<{:AppLink('circle/uploadimg')}>" id="imageform" me ...
- .net又一个生成缩略图的方法,不变形
生成缩略图是一个十分常用功能,找到了一个方法,重写部分代码,实用又好用,.net又一个生成缩略图的方法,不变形 /// <summary> /// 为图片生成缩略图 by 何问起 /// ...
随机推荐
- 【转】STM32的FSMC详解
STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT. 一般越是复杂的东西,理解起来就很困难,但是使用上 ...
- spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目
spring-boot-plusV1.2.3发布,CentOS快速安装环境/构建/部署/启动项目 [V1.2.3-RELEASE] 2019.09.09
- VBA精彩代码分享-2
VBA开发中经常需要提示消息框,如果不关闭程序就会暂时中断,这里分享下VBA如何实现消息框的自动关闭,总共有三种方法: 第一种方法 Public Declare Function MsgBoxTime ...
- ajax 请求二进制流 图片
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...
- Docker本地镜像发布到阿里云和从阿里云拉取镜像
登录阿里云官网,找到容器镜像服务 进入镜像仓库,创建仓库 输入信息 选择本地仓库 这里我要将这个镜像提交到仓库 回到仓库列表,点击管理 docker login --username=cn丶moti ...
- try,except,finally的用法
try,except,finally try...except形式:指定一个或多个异常处理器(异常子句).. 当在try子句中没有异常发生时,,异常处理器将不被执行. 当在try子句中有异常发生时,首 ...
- 一秒钟教会你如何 使用jfreechart制作图表,扇形图,柱形图,线型图,时序图,附上详细代码,直接看效果
今天有小伙伴问到我怎么使用jfreeChat生成图标,去年就有一个这方便的的总结,今天再遇到,就总结出来,供大家参考: 第一个: 创建柱状图,效果图如下: 柱状图代码如下: package cn.xf ...
- 我理解的epoll(三)多线程模式下的ET
ET模式下,需要循环从缓存中读取,直到返回EAGAIN没有数据可读后,一个被通知的事件才算结束.如果还读取过程中,同一个连接又有新的事件到来,触发其他线程处理同一个socket,就乱了.EPOLL_O ...
- 使用Google Thumbnails 压缩图片
背景说明:最近项目中需要用到一些图片文件的上传 ,但是有些图片很大,比如轮播图,大有的有几兆,这样加载一个首页都要很久,显然这样对用户体验是非常不友好的,对服务器资源将是一种浪费. 为了解决这个问题, ...
- Spring OAuth2 Could not decode JSON for additional information: BaseClientDetails
错误消息: 2019-10-08 14:48:16.703 WARN o.s.s.o.p.c.JdbcClientDetailsService : Could not decode JSON for ...