大佬教程收集整理的这篇文章主要介绍了UIImage 文本叠加 - CGPoint 不正确;错误的图像尺寸?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在 UIImage 的左下角叠加文本。我从设备的相机胶卷中获取图像,执行叠加,然后将其分配给 VIEwController 上的 UIImageVIEw。然而,垂直 CGPoint 永远不会正确,因为图像的高度似乎与我从 vIEw.bounds.height 得到的不同。以下是我一直在使用的内容;我应该进行哪些更改才能获得正确的 CGPoint 以将覆盖标签分配给?谢谢!
结果(应该在左下角):
PhotosVC 类:UIVIEwController、UINavigationControllerDelegate、UIImagePickerControllerDelegate {
@IBOutlet weak var photoVIEw: UIImageVIEw!
func presentPicker() {
let picker = UIImagePickerController()
picker.delegate = self
let alert = UIAlertController(title: nil,message: nil,preferredStyle: .actionSheet)
alert.addAction(UIAlertAction(title: "Camera",style: .default,handler: {
action in
picker.sourceType = .camera
self.present(picker,animated: true,completion: nil)
}))
alert.addAction(UIAlertAction(title: "Photo library",handler: {
action in
picker.sourceType = .photolibrary
self.present(picker,completion: nil)
}))
alert.addAction(UIAlertAction(title: "Cancel",style: .cancel,handler: nil))
self.present(alert,completion: nil)
}
overrIDe func vIEwDIDAppear(_ animated: Bool) {
super.vIEwDIDAppear(animated)
presentPicker()
}
overrIDe func vIEwDIDLoad() {
super.vIEwDIDLoad()
}
func imagePickerController(_ picker: UIImagePickerController,dIDFinishPickingMediawithInfo info: [UIImagePickerController.InfoKey : Any]) {
picker.dismiss(animated: true,completion: nil)
guard let image = info[.originalimage] as? UIImage else {
print("Issue getTing photo from imagePickerController")
return }
let CGPointBottomleft = photoVIEw.bounds.height
print(photoVIEw.bounds.height) // Is 336
let imageWithText = textToImage(drawText: "Overlayed text",inImage: image,atPoint: CGPoint(x: 0,y: CGPointBottomleft))
self.photoVIEw.image = imageWithText
}
func imagePickerControllerDIDCancel(_ picker: UIImagePickerController) {
dismiss(animated: true,completion: nil)
}
func textToImage(draw@R_657_3801@: @R_450_10495@ng,inImage image: UIImage,atPoint point: CGPoint) -> UIImage {
let textcolor = UIcolor.white
let textFont = UIFont(name: "Helvetica Bold",size: 212)! // Only visible if huge
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(image.size,false,scalE)
let textFontAttributes = [
NSAttributed@R_450_10495@ng.Key.Font: textFont,NSAttributed@R_450_10495@ng.Key.foregroundcolor: textcolor,] as [NSAttributed@R_450_10495@ng.Key : Any]
image.draw(in: CGRect(origin: CGPoint.zero,size: image.sizE))
let rect = CGRect(origin: point,size: image.sizE)
text.draw(in: rect,withAttributes: textFontAttributes)
let newImage = UIGraphicsGetimageFromCurrentimageContext()
UIGraphicsEndImageContext()
return newImage!
}
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的UIImage 文本叠加 - CGPoint 不正确;错误的图像尺寸?全部内容,希望文章能够帮你解决UIImage 文本叠加 - CGPoint 不正确;错误的图像尺寸?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。