使用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 何问起 /// ...
随机推荐
- 移动端测试之APP安全测试
现在APP测试已经是测试行业的一个重要分支,对APP测试技能和经验的要求也越来越高,看到一篇关于APP安全测试的总结,分享给需要的朋友.1.软件权限1)扣费风险:包括发送短信.拨打电话.连接网络等2) ...
- [转载]为什么jar包中能看见源码
[转载]为什么jar包中能看见源码 这个也是我之前发现过的一个现象,只是之前没有研究过.今天正好在知乎看见,总结一下: 对于Maven或者Gradle项目,依赖的部分会自动从远程仓库下载源码 生成的j ...
- 对数据库ID进行散裂化计算
import basehash class Hasher: """ 对数据库ID进行散列化计算 """ base36 = basehash. ...
- 一 ArrayList 及其源码解析
1.数组介绍 因为数组在存储数据时是按顺序存储的,存储的内存也是连续的,所以其特点是读取数据比较容易,插入删除比较困难 2.arraylist源码分析 1)构造方法(默认容量为10) 2)插入数据 扩 ...
- RPC、RMI、REST的区别
初入职场,接触了不少企业常用的技术,与学校实训使用的技术有很大差异,在这里记录一下RPC.RMI与REST的区别. 概念 RPC(Remote Procedure Call,远程过程调用) 一种通过从 ...
- 根据CPU核心数确定线程池并发线程数(转)
一.抛出问题 关于如何计算并发线程数,一般分两派,来自两本书,且都是好书,到底哪个是对的?问题追踪后,整理如下: 第一派:<Java Concurrency in Practice>即&l ...
- IDEA 社区版集成TOMCAT
直接在POM.XML中添加以下内容 <plugin> <groupId>org.apache.tomcat.maven</groupId> <ar ...
- Mybatis 高级查询的小整理
高级查询的整理 // resutlType无法帮助我们自动的去完成映射,所以只有使用resultMap手动的进行映射 resultMap: type 结果集对应的数据类型 id 唯一标识,被引用的时候 ...
- Hadoop_22_MapReduce map端join实现方式解决数据倾斜(DistributedCache)
1.Map端Join解决数据倾斜 1.Mapreduce中会将map输出的kv对,按照相同key分组(调用getPartition),然后分发给不同的reducetask 2.Map输出结果的时候 ...
- 构建之法第二次作业【使用git和Vs实现四则运算】
[相关信息] Q A GIT地址 git地址 GIT用户名 Lin-000 学号后五位 62501 博客地址 博客地址 作业链接 此次作业链接 1.项目需求 程序接收一个命令行参数 n,然后随机产生 ...