概述
话不多说,直接上代码讲解
在我的项目里,水印文字是大小不同的字体拼接的,所有这里也是对这种水印文字进行的处理。
extension UIImage {
/// 图片加水印
///
/// - Parameters:
/// - text: 水印完整文字
/// - textColor: 文字颜色
/// - textFont: 文字大小
/// - suffixText: 尾缀文字(如果是nil可以不传)
/// - suffixFont: 尾缀文字大小(如果是nil可以不传)
/// - suffixColor: 尾缀文字颜色(如果是nil可以不传)
/// - Returns: 水印图片
func drawTextInImage(text: String, textColor: UIColor, textFont: UIFont,suffixText: String?, suffixFont: UIFont?, suffixColor: UIColor?) -> UIImage {
// 开启和原图一样大小的上下文(保证图片不模糊的方法)
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
// 图形重绘
self.draw(in: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height))
var suffixAttr: [NSAttributedStringKey: Any] = [NSAttributedStringKey.foregroundColor:textColor, NSAttributedStringKey.font:textFont]
let attrS = NSMutableAttributedString(string: text, attributes: suffixAttr)
// 添加后缀的属性字符串
if let suffixStr = suffixText {
let range = NSRange(location: text.count - suffixStr.count, length: suffixStr.count)
if suffixFont != nil {
suffixAttr[NSAttributedStringKey.font] = suffixFont
}
if suffixColor != nil {
suffixAttr[NSAttributedStringKey.foregroundColor] = suffixColor
}
attrS.addAttributes(suffixAttr, range: range)
}
// 文字属性
let size = attrS.size()
let x = (self.size.width - size.width) / 2
let y = (self.size.height - size.height) / 2
// 绘制文字
attrS.draw(in: CGRect(x: x, y: y, width: size.width, height: size.height))
// 从当前上下文获取图片
let image = UIGraphicsGetImageFromCurrentImageContext()
//关闭上下文
UIGraphicsEndImageContext()
return image!
}
}
}
最后
以上就是自觉帅哥为你收集整理的java 图片加水印不失真_Swift 给图片添加文字水印(图片不失真)的全部内容,希望文章能够帮你解决java 图片加水印不失真_Swift 给图片添加文字水印(图片不失真)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复