ios - 在 UIImage 上绘制文本
问题描述
所以我希望这里有人曾经处理过这个问题并可以指导我。我想要做的是在图像上绘制一些文本。我的问题是图像可以有很多不同的大小,以至于文本要么很大要么很小。我发现的所有内容都说要选择一个字体大小,它会给我矩形的大小来绘制它。这对我不起作用,我想计算矩形的大小,并找出正确的字体大小以适合该矩形。有谁知道我怎么能做到这一点?
在此先感谢,感谢您的帮助。
解决方案
如果使用 UILabel 将文本添加到 UIImage 中,请考虑 Autoshrink 功能。您需要根据示例图像的宽度定义最大字体大小。这是一个示例代码。
func addTextToImage(image: UIImage, text: String) -> UIImage? {
let imageView = UIImageView(image: image)
imageView.backgroundColor = UIColor.clear
imageView.frame = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: image.size.width, height: 45.0))
label.backgroundColor = UIColor.clear
label.textAlignment = .center
label.textColor = UIColor.black
label.text = text
label.font = UIFont.systemFont(ofSize: 25)
label.numberOfLines = 1
label.adjustsFontSizeToFitWidth = true
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, false, 0)
imageView.layer.render(in: UIGraphicsGetCurrentContext()!)
label.layer.render(in: UIGraphicsGetCurrentContext()!)
let imageWithText = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return imageWithText
}
推荐阅读
- r - 用户定义的无参数函数,在 R 中,在管道中
- ssl-certificate - 如何在赛普拉斯 POST 请求中传递 SSL 证书
- r - 如何访问远程主机上的 dockerized 应用程序
- python - 用于多表连接的 SQL Alchemy 映射器
- php - 如何使用 PHP 在新窗口中添加超链接
- python - 在tkinter中调整高度时如何修复输入框?
- python - 使用 Azure KeyVault 的 mTLS?
- javascript - Xpath 不识别锚标签?
- python - 如何使用 Selenium 和 Python 从 div 类中提取文本
- wordpress - 如何使古腾堡块翻译工作?