iOS 高级去水印,涂鸦去水印
目前在研究一下图像的处理,看了一下相关的软件,比如:《去水印大师》,究竟去水印是怎么处理的呢?看图分析。

一共是三个功能:快速去水印、高级去水印、涂鸦去水印
快速去水印:暂时没找到好的处理方法,可以使用高斯模糊的方式去处理,效果还不错。
高级去水印:这个要使用opencv这个C++的库
涂鸦去水印:就单纯的涂鸦处理
高级去水印
可参考github:
https://github.com/ahgdwang/WaterMarkDelete
https://github.com/CodingClearLoveLove/Watermarks2
涂鸦去水印
可参考github:
https://github.com/siyunyou/CRJDrawImageView
总结
1、涂鸦去水印和高级去水印,可以混合使用。由于涂鸦去水印,每画一笔,都是在CAShapeLayer图层上操作,而高级去水印是基于图片处理的,因而,需要将涂鸦去水印每一笔画完去保存成一张图片。
2、处理图片的UIImageView,需要根据图片的大小比例去创建,这样,会出现图片比例是无限循环小数的时候,每次保存图片都会让图片失真并且缩小。暂时没有好的处理方式。
OpenCV的库,研究起来,还是很吃力的,可以看看以下的文章
1、https://www.jianshu.com/p/eed90371a3a6
2、http://blog.devtang.com/2013/10/19/the-tech-detail-of-ape-client-2/
3、https://www.jianshu.com/p/476ba34fca96
4、https://www.jianshu.com/p/96be2417cc98
iOS 高级去水印,涂鸦去水印的更多相关文章
- 北京联想招聘-IOS高级 加入qq 群:220486180 或者直接在此 留言咨询
ios 高级开发 Job ID #: 47980 Position Title: 高级iOS development engineer Location: CHN-Beijing Functional ...
- (转发)IOS高级开发~Runtime(四)
用C代替OC: #import <objc/runtime.h> #import <objc/message.h> #import <stdio.h> extern ...
- (转发)IOS高级开发~Runtime(三)
11.系统类的方法实现部分替换 - (void) methodExchange { Method m1 = class_getInstanceMethod([NSStringclass],@selec ...
- (转发)IOS高级开发~Runtime(二)
一些公用类: @interface ClassCustomClass :NSObject{ NSString *varTest1; NSString *varTest2; NSString *varT ...
- (转发)IOS高级开发~Runtime(一)
IOS高级开发-Runtime(一) IOS高级开发-Runtime(二) IOS高级开发-Runtime(三) IOS高级开发-Runtime(四) 一些公用类: @interface Custom ...
- IOS高级编程之一:多点触摸与手势验证
前段时间学习了IOS基础的一些控件的使用作为基础,现在开始学习一些高级编程的东西,手势处理器.文件I/O.定位.网络通信.多线程这些,分享一些学习的重点,还是很实用的. 今天就先介绍个简单点得,手势处 ...
- iOS 高级框架的介绍
Core Data.Core Graphics.Core Animation 和 OpenGL ES 框架,是对于应用程序开发很重要的高级技术,因此需要花时间来学习和掌握. Core Data 框架管 ...
- 【转】iOS高级向的十道面试问题
原文:http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技 ...
- 新浪微博资深大牛全方位剖析 iOS 高级面试
第1章 课程简介本章对这门课程所讲述内容进行概要介绍,其中包括课程目标.适合人群,课程特色.课程收获.课程安排等.整个课程学习完结后,有机会获得电话模拟面试及内推. 1-1 课前必读(不看会错过一个亿 ...
随机推荐
- select2 api参数的文档
具体参数可以参考一下: 参数 类型 描述 Width 字符串 控制 宽度 样式属性的Select2容器div minimumInputLength int 最小数量的字符 maximumInputLe ...
- CentOS7 nginx启动脚本
vi /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=fo ...
- SSM框架中常用的配置文件
学习框架,刚开始的时候最烦的就是一些配置文件,有很多需要配置的东西,今天把这些配置文件信息稍微整理一下,以后说不定会用的到. web.xml文件 <?xml version="1.0& ...
- String Formatting in C#
原文地址 http://blog.stevex.net/string-formatting-in-csharp/ When I started working with the .NET framew ...
- 关于ajax请求数据,并将数据赋值给全局变量的一些解决方法
在使用ajax请求数据是,开始的时候是打算将ajax的数据取出,并赋予给全局变量,但是在实际编码过程中发现并不能将数据赋予给最开始定义的全局变量,出现这个问题的原因是由于ajax异步加载的原因,所以只 ...
- CentOS系统安全加固常见方法
关于Linux系统安全加固的具体实现脚本及基线检查规范,以供主机维护人员参考学习. 其中以下脚本主要实现的功能包括: *加固项包括:密码长度.session超时时间.删除不用的帐号和组.限制root用 ...
- 前端技术之--CSS
在标签上设置style属性: background-color: #2459a2; height: 48px; ... 编写css样式: 1. 标签的style属性 2. 写在head里面 style ...
- jQuery中height()不能精确计算的问题
jQuery中关于高度的计算有三个方法:outerHeight().innerHeight().height() outerHeight():获取元素集合中第一个元素的当前计算高度值,包括paddin ...
- Python-Django学习
1,安装Django与python版本的对应1.8 2.7,3.2--3.51.9,1.10 2.7,3.4,3.51.11 2.7,3.4,3.5,3.62.0 2.1 第一种安装:pip inst ...
- JavaScript(一)
JavaScript介绍 JavaScript是运行在浏览器端的脚步语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互. JavaScript是浏览器解释执行的,前端脚 ...