[swift][iOS]는 사실 간단한 이미지 필터입니다.

2682 단어 imageSwiftfilters
이미지 가공으로 인해 주위가 어두워지기 때문에 중간에 원래의 색만 남기는 방법은 매우 간단하다

일단 원래 그림은 이런 느낌이에요.



결실



여기서부터 코드예요.


기재된 코드는 이것뿐입니다.
※ 댓글@lovee에 적시된 코드는
네, 아래 코드를 대조해 주세요.
override func viewDidLoad() {
    super.viewDidLoad()

    viewImage.image = UIImage(named: "IMG_3368")

    let filteredImage = CIImage(image: self.viewImage.image!)
    let filter = CIFilter(name: "CIVignette")

    filter!.setValue(filteredImage, forKey: "inputImage")
    filter!.setValue(NSNumber(float: 9.0), forKey: "inputIntensity")


    let ciContext = CIContext(options: nil)
    let imageRef = ciContext.createCGImage((filter?.outputImage)!, fromRect: (filter?.outputImage!.extent)!)
    let outputImage = UIImage(CGImage: imageRef)
    self.viewImage.image = outputImage

}

어쨌든 적당한 그림을 먼저 넣을게요.

codeviewImage.이미지 = UIImage(named: 임의의 이미지)

CIImage에 UIImage 할당

codelet filteredImage = CIImage(image: self.viewImage.image!)

필터 선택

codelet filter = CIFilter(name: "CIVignette")
※ 필터는 여러 가지가 있습니다. 이것을 참고하여 다양한 필터를 시도해보세요.
Core Image Filter Reference by Apple

필터에 값을 매기다

code그림 설정
filter!.setValue(filteredImage, forKey: "inputImage")
주변 색상의 농도 변경
filter!.setValue(NSNumber(float: 9.0), forKey: "inputIntensity")
※ NSNumber(flat:9.0) 여기서 수치를 변경하면 색상 농도가 변경됩니다

필터에 맞게 컨텍스트 작성


※ 이 씨콘텍트는 아직 무슨 뜻인지
let ciContext = CIContext(options: nil)
let imageRef = ciContext.createCGImage((filter?.outputImage)!, fromRect: filter?.outputImage!.extent)!)

필터를 통해 변수에 이미지 넣기

codelet outputImage = UIImage(CGImage: imageRef)

필터링된 이미지 대입


self.viewImage.image = outputImage
어쨌든 이런 느낌은 간단해.
처리가 상당히 무거워서 표시에 시간이 좀 걸리기 때문에 이 방면의 세부 사항은
UX로 가려주세요...
잘못된 점이 있으면 부드럽게 토로하세요!

좋은 웹페이지 즐겨찾기