[swift] 이미지에 텍스트 추가하기

이미지에 텍스트를 추가하는 것은 iOS 앱 개발에서 자주 사용되는 기능입니다. 이번 블로그 포스트에서는 Swift 언어를 사용하여 이미지에 텍스트를 추가하는 방법을 알아보겠습니다.

1. UIImage에 텍스트 추가하기

UIImage에 텍스트를 추가하기 위해서는 Core Graphics(CG)를 사용해야 합니다. 아래의 코드를 참고하여 UIImage에 텍스트를 추가하는 방법을 확인해보세요.

// 1. 원본 이미지 로드
let originalImage = UIImage(named: "original-image")

// 2. 그래픽 컨텍스트 생성
UIGraphicsBeginImageContextWithOptions(originalImage.size, false, 0.0)
originalImage.draw(in: CGRect(x: 0, y: 0, width: originalImage.size.width, height: originalImage.size.height))

// 3. 텍스트 그리기
let text = "추가할 텍스트"
let textRect = CGRect(x: 50, y: 50, width: originalImage.size.width - 100, height: originalImage.size.height - 100)
let textStyle = NSMutableParagraphStyle()
textStyle.alignment = .center
text.draw(in: textRect, withAttributes: [
    .font: UIFont.systemFont(ofSize: 20),
    .paragraphStyle: textStyle,
    .foregroundColor: UIColor.white
])

// 4. 새로운 이미지 생성
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

// 5. 이미지를 표시하거나 저장
imageView.image = newImage // 이미지 뷰에 표시
UIImageWriteToSavedPhotosAlbum(newImage, self, #selector(image(_:didFinishSavingWithError:contextInfo:)), nil) // 앨범에 저장

@objc func image(_ image: UIImage, didFinishSavingWithError error: Error?, contextInfo: UnsafeRawPointer) {
    if let error = error {
        // 저장 실패 처리
    } else {
        // 저장 성공 처리
    }
}

위의 코드를 실행하면 원본 이미지에 “추가할 텍스트”가 포함된 새로운 이미지가 생성됩니다. 이후에는 생성된 이미지를 원하는 방식으로 사용하면 됩니다.

2. UILabel에 텍스트 추가하기

UIImage가 아닌 UILabel에 텍스트를 추가하는 것은 더 간단합니다. UILabel을 생성하고, 텍스트를 설정하면 됩니다. 다음의 코드를 참고하여 UILabel에 텍스트를 추가하는 방법을 확인해보세요.

let label = UILabel(frame: CGRect(x: 50, y: 50, width: 200, height: 40))
label.text = "추가할 텍스트"
label.textColor = UIColor.white
label.textAlignment = .center
label.font = UIFont.systemFont(ofSize: 20)

// 이미지 뷰에 추가
imageView.addSubview(label)

위의 코드를 실행하면 이미지 뷰에 위치한 좌표 (50, 50)에 크기가 200x40인 UILabel이 생성되고, “추가할 텍스트”가 표시됩니다.

이렇게 UIImage 또는 UILabel에 텍스트를 추가하는 방법을 사용하여 다양한 이미지나 UI 요소에 텍스트를 동적으로 추가할 수 있습니다.

결론

이번 포스트에서는 Swift 언어를 사용하여 이미지에 텍스트를 추가하는 방법을 알아보았습니다. UIImage와 Core Graphics(CG)를 사용하는 방법과 UILabel을 사용하는 방법을 소개했습니다. 다양한 기능을 추가할 때에는 해당 클래스의 다양한 속성과 메서드를 활용하여 원하는 결과물을 만들어내실 수 있습니다.

더 자세한 내용은 다음의 참고 자료를 확인해보세요.

감사합니다!