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 - 给图片添加文字水印(图片上写文字,并可设置位置和样式)相关推荐
- java 批量为图片添加图标水印和文字水印
需求,给指定目录下面以.jpg结尾的文件,添加图标水印和文字水印 文章目录 一.基础版本 二.升级版本 三.依赖 一.基础版本 package com.gblfy.util;import com.su ...
- 文字转图片,文字水印图片,合成图片,教你 Python 生成网站原创配图!
又是为站佬们服务(写)水文的一篇,如何应用python来生成或者说是合成自己的原创图片,适合各位站群大佬哥们生成自己的图片,避免没有配图或者侵权碰瓷的尴尬,当然本渣渣这里分享的仅仅是源码demo,后续 ...
- php 怎么支持中文图片显示,利用php怎么实现一个给图片添加中文水印的功能
利用php怎么实现一个给图片添加中文水印的功能 发布时间:2021-01-21 15:13:48 来源:亿速云 阅读:88 作者:Leah 这篇文章给大家介绍利用php怎么实现一个给图片添加中文水印的 ...
- java 给 pdf文件添加水印 | Itext7 | 文字水印 | 图片水印 | 多重水印
java | Itext7 水印 | 文字水印 | 图片水印 本地开发环境:jdk1.8 效果图: maven依赖: <dependency><groupId>com.itex ...
- java获取远程图片并在图片上写文字
本编文章主要是分享一下,从远程获取图片文件,用java在图片上写文字并合成图片的示例.一下代码完全拷贝后是可以正常运行的. 主要有三个类: DrawPicFromUrlToOSS:核心类,获取图片并在 ...
- java绘制海报,使用BufferedImage,Graphics2D,drawString方法在图片上写文字,中文不显示;drawString写文字为空问题
项目场景: 项目场景:公司需要制作一张海报.通过java后台制作海报,给图片拼接图片,添加水印添加文字,定义字体为"宋体",给海报添加头像.姓名.性别.个人简介.二维码等信息.把代 ...
- php 用gd库在图片上写文字,并处理文字糊模问题
今天有个需求,用php在一张图片上写文字. 这个不是挺简单的嘛?我在一个test.php文件上,敲出6行代码,搞定 img=imagecreatefrompng("C:\Users\Admi ...
- python 添加半透明水印_如何利用python给图片添加半透明水印
前言 本文主要给大家介绍了关于python图片添加半透明水印的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 示例代码: # coding:utf-8 from PIL im ...
- python 添加半透明水印_怎么利用python给图片添加半透明水印
前言 本文主要给大家简介了关于python图片添加半透明水印的相关资料,共享出来供大家参考学习,下面话不多说了,来一起看看具体的简介吧 示例代码: # coding:utf-8 from PIL im ...
- 使用Qpaint在图片上写文字
开发过程中需要实现在图片上叠加文字,可以采用Qpaint在图片上写文字,然后将图片显示在上面.再将Qlabel加到Qwidget中.效果如下 //创建对象,加载图片 QPixmap pix; pix. ...
最新文章
- python知乎-知乎大佬李启方道出肺腑之言:为什么我不建议你学Python?
- python怎么读excel文件-python读写excel文件
- 页面中的多选框的非空判断
- Python的collections之namedtuple的使用及其优势
- linux pppd源码下载_pppd源代码分析
- ozf oracle,ORACLE EBS 简称大全
- C语言 ##__VA_ARGS__ - C语言零基础入门教程
- magic square java_测试Magic Square Java的.txt文件
- python qt信号在qml 的使用_Python和C++混合使用QML开发GUI
- Android第二十四期 - 游戏公告跑马灯效果
- 用计算机制作模拟,计算机模拟设计,computer simulation design,音标,读音,翻译,英文例句,英语词典...
- DOC命令小问题~~+理解
- 一个ABC眼中的中国的创业环境(一)
- java服务器返回中文乱码:???
- VS自带数据库SqlExpress
- 中文作为参数传递乱码
- 在硅谷初创公司怎么找投资人
- 第1章 Dev C++的使用
- 根据身份证解析出生年月
- iOS开发-极光推送SDK使用笔记