2016-10-19 2 views
0

다음 코드는 사진을 찍어 사진 갤러리에 저장할 수 있습니다. 이 코드에는 이미지 뷰를 넘나 드는 레이블이 있지만 이미지의 맨 위에 표시되어 이미지에 저장되지 않습니다. 사진을 저장할 때 텍스트와 이미지가 모두 사진 갤러리의 최종 사진에 포함되도록 레이블을 중첩 할 수 있습니까?신속하게 이미지 뷰로 레이블을 중첩하는 방법 3

import UIKit 

    class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

@IBOutlet weak var image: UIImageView! 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 
@IBAction func camera(_ sender: UIButton) { 

    if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ 
     let imagePicker = UIImagePickerController() 
     imagePicker.delegate = self 
     imagePicker.sourceType = UIImagePickerControllerSourceType.camera 
     imagePicker.allowsEditing = false 
     self.present(imagePicker, animated: true, completion: nil) 



     let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21)) 
     label.center = CGPoint(x: 160, y: 222) 
     label.textAlignment = .center 
     label.text = "I'am a test label" 
     self.view.addSubview(label) 

    } 
} 

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) { 
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage 
    { 
     image.contentMode = .scaleToFill 
     image.image = pickedImage 

    } 
    picker.dismiss(animated: true, completion: nil) 
} 

@IBAction func save(_ sender: UIButton) { 

    let imageData = UIImagePNGRepresentation(image.image!) 
    let compressedImage = UIImage(data: imageData!) 
    UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil) 


}} 

답변

1

는이 같은 텍스트로 이미지를 그릴해야합니다

let str = "I'am a test label" as NSString 
    let rect = CGRect(origin: CGPoint.zero, size: image.image!.size) 
    UIGraphicsBeginImageContextWithOptions(rect.size, false, 0) 
    image.image!.draw(in: rect) 
    //str.draw(in: <#The Rect You want#>, withAttributes: <#Specify The Font And Color Or Other Property#>) 
    str.draw(in: CGRect(origin: CGPoint.zero, size: CGSize(width: 200, height: 40)), withAttributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 20), NSForegroundColorAttributeName:UIColor.green]) 
    let img = UIGraphicsGetImageFromCurrentImageContext()! 
    UIGraphicsEndImageContext() 

    let imageData = UIImagePNGRepresentation(img) 
    let compressedImage = UIImage(data: imageData!) 
    UIImageWriteToSavedPhotosAlbum(compressedImage!, nil, nil, nil) 
+0

을 나는 //str.draw(in에 넣으려면 무슨 해달라고하지 : <#The 사각형 당신은 # 원하는>, withAttributes를 : <# 글꼴 및 색상 또는 기타 속성 #> 지정) 부분을 지정하십시오. 사진 갤러리에있는 그림에 첨부 된 텍스트를 볼 수 있도록 배치 할 배치 값을 줄 수 있습니까? 감사합니다 –

+0

with theStattdraw (in : CGRect (출처 : CGPoint.zero, 크기 : CGSize (너비 : 200, 높이 : 40)) withAttributes : [NSFontAttributeName : UIFont.systemFont (ofSize : 20), NSForegroundColorAttributeName : UIColor.green])' – zylenv

+0

그건 작동하지 않았다. 내 저장 버튼 아래에 코드를 모두 넣었습니다. 사진이 찍히고 저장되지만 텍스트가 없습니다. –

관련 문제