[ios] PhotoKit을 사용하여 이미지 및 비디오를 워터마크, 삽화 및 로고로 보호하는 방법

PhotoKit을 사용하여 이미지 보호하기

iOS 앱에서 이미지를 보호하는 한 가지 방법은 워터마크를 적용하는 것입니다. 워터마크를 추가하면 이미지를 무단으로 사용하는 것을 방지할 수 있습니다.

PhotoKit을 사용하여 이미지에 워터마크를 삽입하는 예제 코드는 다음과 같습니다:

import Photos

let watermarkImage = UIImage(named: "watermark.png")
let inputImage = UIImage(named: "inputImage.png")

PHPhotoLibrary.shared().performChanges({
    guard let inputCGImage = inputImage.cgImage, let watermarkCGImage = watermarkImage?.cgImage else { return }
    
    let inputAsset = PHAsset.fetchAssets(withLocalIdentifiers: ["<YOUR_IMAGE_ASSET_IDENTIFIER>"], options: nil).firstObject
    guard let imageCreationRequest = PHAssetChangeRequest.creationRequestForAsset(from: inputAsset) else { return }
    imageCreationRequest.addResource(with: .photo, data: inputCGImage.data, options: nil)
    let imageContentEditingOutput = PHContentEditingOutput(contentEditingInput: inputAsset!.requestContentEditingInputWithOptions(nil)!)
    let adjustmentData = PHAdjustmentData(formatIdentifier: "<ADJUSTMENT_FORMAT_IDENTIFIER>", formatVersion: "<ADJUSTMENT_FORMAT_VERSION>", data: "watermark".data(using: String.Encoding.utf8)) // This is an example, you can use any unique identifier for formatIdentifier and formatVersion
    imageContentEditingOutput.adjustmentData = adjustmentData
    imageContentEditingOutput.renderedContentURL = imageContentEditingOutput.renderedContentURL.appendingPathExtension("PNG")
    try UIImage(data: watermarkCGImage.data)?.pngData()?.write(to: imageContentEditingOutput.renderedContentURL)
    
    imageCreationRequest.contentEditingOutput = imageContentEditingOutput
}, completionHandler: { success, error in
    if success {
        print("Watermark added successfully")
    } else {
        print("Error adding watermark: \(error)")
    }
})

이것은 이미지에 워터마크를 삽입하는 방법의 간단한 예제입니다.

PhotoKit을 사용하여 비디오 보호하기

비디오를 보호하는 방법도 비슷합니다. 워터마크, 삽화 또는 로고를 비디오에 추가하여 무단 사용을 방지할 수 있습니다.

VideoKit을 사용하여 비디오에 삽입하는 예제 코드는 다음과 같습니다:

import Photos

let watermarkImage = UIImage(named: "watermark.png")
let inputVideoURL = URL(string: "path_to_input_video.mov")

PHPhotoLibrary.shared().performChanges({
    let inputAsset = PHAsset.fetchAssets(withLocalIdentifiers: ["<YOUR_VIDEO_ASSET_IDENTIFIER>"], options: nil).firstObject
    guard let videoAsset = inputAsset else { return }
    let editOperation = PHAssetChangeRequest(for: videoAsset)
    editOperation.requestContentEditingInput(with: nil, completionHandler: { (contentEditingInput, info) in
        guard let videoURL = contentEditingInput?.fullSizeImageURL else { return }
        
        // Add watermark to the video
        // Code for adding watermark to video goes here
    })
}, completionHandler: { success, error in
    if success {
        print("Watermark added to video successfully")
    } else {
        print("Error adding watermark to video: \(error)")
    }
})

이것은 비디오에 워터마크를 삽입하는 방법에 대한 간단한 예제입니다.

PhotoKit 및 VideoKit을 사용하여 이미지 및 비디오를 보호하는 방법에 대한 더 많은 자세한 내용은 Apple의 PhotoKit 프레임워크 문서를 참조하십시오.