Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
//--- UIImageExtension.swift --- import UIKit extension UIImage { //水印位置枚举 enum WaterMarkCorner { case TopLeft case TopRight case BottomLeft case BottomRight } //添加水印方法 func waterMarkedImage(waterMarkText: String , corner: WaterMarkCorner = . BottomRight , margin: CGPoint = CGPoint (x: 20, y: 20), waterMarkTextColor: UIColor = UIColor .whiteColor(), waterMarkTextFont: UIFont = UIFont .systemFontOfSize(20), backgroundColor: UIColor = UIColor .clearColor()) -> UIImage { let textAttributes = [ NSForegroundColorAttributeName :waterMarkTextColor, NSFontAttributeName :waterMarkTextFont] let textSize = NSString (string: waterMarkText).sizeWithAttributes(textAttributes) var textFrame = CGRectMake (0, 0, textSize.width, textSize.height) let imageSize = self .size switch corner{ case . TopLeft : textFrame.origin = margin case . TopRight : textFrame.origin = CGPoint (x: imageSize.width - textSize.width - margin.x, y: margin.y) case . BottomLeft : textFrame.origin = CGPoint (x: margin.x, y: imageSize.height - textSize.height - margin.y) case . BottomRight : textFrame.origin = CGPoint (x: imageSize.width - textSize.width - margin.x, y: imageSize.height - textSize.height - margin.y) } // 开始给图片添加文字水印 UIGraphicsBeginImageContext (imageSize) self .drawInRect( CGRectMake (0, 0, imageSize.width, imageSize.height)) NSString (string: waterMarkText).drawInRect(textFrame, withAttributes: textAttributes) let waterMarkedImage = UIGraphicsGetImageFromCurrentImageContext () UIGraphicsEndImageContext () return waterMarkedImage } } |
3,使用样例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import UIKit class ViewController : UIViewController { @IBOutlet weak var imageView: UIImageView ! override func viewDidLoad() { super .viewDidLoad() //使用链式调用方法,给图片添加两条水印 imageView.image = UIImage (named: "bg" )? .waterMarkedImage( "做最好的开发者知识平台" ) .waterMarkedImage( "hangge.com" , corner: . TopLeft , margin: CGPoint (x: 20, y: 20), waterMarkTextColor: UIColor .blackColor(), waterMarkTextFont: UIFont .systemFontOfSize(45), backgroundColor: UIColor .clearColor()) } override func didReceiveMemoryWarning() { super .didReceiveMemoryWarning() } } |
Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)的更多相关文章
- PHP实现文字水印图片
php实现简单的文字水印图片,使用前需要开启php配置中的gd2功能 <?php/*打开图片*/ //1.配置图片路径 $src="image/55.jpg";//这个路径改 ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
- 函数putText()在图片上写文字
#include <iostream> #include <opencv2/opencv.hpp> using namespace std; using namespace c ...
- thinkphp 利用GD库在图片上写文字
<?php /** * Created by PhpStorm. * User: Administrator */ namespace Home\Event; use \Think\Image; ...
- thinkphp在为图片添加png水印不足的处理
thinkphp在为图片加水印的时候.如果水印图片是png图片,透明度处理很不理想,与是做以下处理 在Image.class.php中新增 static function imagecopymerge ...
- 用python给图片添加半透明水印
# coding:utf-8 from PIL import Image, ImageDraw, ImageFont def add_text_to_image(image, text): font ...
- python 图片格式转换png转jpg,如何利用python给图片添加半透明水印
from PIL import Imageim = Image.open(r'd:\test2.png')r, g, b, a = im.split()im = Image.merge("R ...
- C#图片上写文字
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...
- vue 给 图片添加一个默认图片
<img v-bind:src="userData.photo" :onerror="logo" class="img-box4"&g ...
随机推荐
- Pick-up sticks(判断两直线相交)
Pick-up sticks Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 11335 Accepted: 4250 D ...
- sharepoint 2013 附件控件FileUpload怎样检验是否为图片的方法
记录一下关于附件控件FileUpload怎样检验是否为图片的方法: function checkImg() { var fileObj =document.getElementById('<%= ...
- BZOJ 3040: 最短路(road) ( 最短路 )
本来想学一下配对堆的...结果学着学着就偏了... 之前 kpm 写过这道题 , 前面的边不理它都能 AC .. 我也懒得去写前面的加边了... 用 C++ pb_ds 库里的 pairing_hea ...
- oracle常用函数以及调用入参为record的存储过程的方法,
转自:http://www.cnblogs.com/zhangronghua/archive/2007/08/20/862812.html SQL中的单记录函数1.ASCII返回与指定的字符对应的十进 ...
- Windows服务编程集合
http://zyan.cc/windows_mstsc/ Optionname--Optionvalues描述 type=----own, share, interact, kernel, file ...
- Hadoop实战实例
Hadoop实战实例 Hadoop实战实例 Hadoop 是Google MapReduce的一个Java实现.MapReduce是一种简化的分布式编程模式,让程序自动分布 ...
- mysql HA方案: MHA
mysql-master-ha mysql 做热备和高可用的方法有很多种, 比如: mmm: http://mysql-mmm.org/ mha: https://code.google.com/p/ ...
- host字段变复杂了
声明: 本博客欢迎转载,但请保留原作者信息! 作者:李人可 团队:华为杭州OpenStack团队 讨论的是openstack中卷的host属性. 印象中.社区H版本号对于volume的host值表示的 ...
- Mac中使用svn进行项目管理
Mac中使用svn进行项目管理,借鉴了http://blog.csdn.net/q199109106q/article/details/8655204 下面方案多人亲測可用 转载请注明出处:http: ...
- 使用webview来查看网站
1.权限 <uses-permission android:name="android.permission.INTERNET"/> 2.视图 <Relative ...