为图片添加水印是一个简单而实用的功能,它可以帮助你标识图片的版权或归属。在Swift中,你可以通过Core Graphics框架轻松地为图片添加个性化水印。以下是一步一步的指南,带你实现这一功能。
准备工作
在开始之前,请确保你的Swift项目已经集成了Core Graphics框架。如果你的项目是基于UIKit的,Core Graphics通常是默认包含的。
创建水印
首先,我们需要创建一个水印的文本或者图形。这里,我们以文本水印为例。
import UIKit
// 创建水印文本
func createWatermarkText(text: String, fontSize: CGFloat, color: UIColor) -> UIImage {
let font = UIFont.systemFont(ofSize: fontSize)
let textAttributes: [NSAttributedString.Key: Any] = [
.font: font,
.foregroundColor: color
]
let attributedString = NSAttributedString(string: text, attributes: textAttributes)
let size = attributedString.size()
// 创建一个合适的图片上下文
let size = CGSize(width: size.width, height: size.height)
UIGraphicsBeginImageContext(size)
// 绘制文本
attributedString.draw(in: CGRect(origin: .zero, size: size))
let watermarkedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return watermarkedImage!
}
添加水印到图片
有了水印文本的图片后,我们就可以将其添加到其他图片上。
func addWatermark(to image: UIImage, watermarkImage: UIImage, position: CGPoint) -> UIImage {
let finalImage = image.withRenderingMode(.alwaysOriginal)
UIGraphicsBeginImageContext(image.size)
// 绘制原始图片
finalImage.draw(at: .zero)
// 绘制水印图片
watermarkImage.draw(at: position)
let watermarkedImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return watermarkedImage!
}
例子
以下是一个完整的例子,展示如何使用上述函数来为图片添加水印。
import UIKit
let originalImage = UIImage(named: "yourImage.jpg")!
let watermarkText = createWatermarkText(text: "Copyright © 2023", fontSize: 20, color: .black)
let watermarkImage = watermarkText
// 设置水印位置
let watermarkPosition = CGPoint(x: 10, y: originalImage.size.height - 30)
// 添加水印到图片
let finalImage = addWatermark(to: originalImage, watermarkImage: watermarkImage, position: watermarkPosition)
// 你可以将finalImage用于任何地方,比如保存到相册或者显示在界面上
总结
通过以上步骤,你可以在Swift应用中为图片添加个性化的水印。你可以根据需要调整水印的文本、颜色、大小和位置。记住,水印不仅是一种版权保护手段,也可以作为一种个性化的装饰。
