티스토리 뷰
> 2018.8.24
> Swift 4.1
> Xcode 9.4.1
카메라로 Capture한 이미지에 내가원하는 정보를 넣고자할때.
* 문제는 이러했다. Custom Camera로 이미지를 캡쳐한 후에 이미지를 정방형으로 자른다음, 원본이미지에 내가 원하는 정보를 텍스트나, 이미지를 덧붙혀서 저장을 하고 싶었다. 하지만, 캡처 후에 이미지를 저장하는데 처리가 오래 걸리는 문제가 발생
1. 원인은 다음과 같았다. iOS는 이미지를 그릴때, blending을 한다. 두가지 색상을 섞을때 섞을 색상의 투명도또한 반영하기 때문에
내가 원하는 이미지에 투명도에 대한 것을 다시 그리기 때문에 속도가 두배이상 느렸던 것이다.
사실상 위에서 본 정보를 가지고 문제를 해결하였다. 다음은 카메라 캡쳐 후 이미지를 합성할때 예제 코드이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | private func drawWaterMark(drawImage previewImage: UIImage) -> UIImage? { guard let squareImage = editSquare(image: previewImage) else { return nil } let squareImageSize = squareImage.size let myLogo = UIImage(named: "imageLogo") let rendererConfig = UIGraphicsImageRendererFormat() // opaque 그려질 이미지는 불투명한 이미지라는걸 지정해주는것. 그래서 속도가 빠르게 그려진다!! rendererConfig.opaque = true let renderer = UIGraphicsImageRenderer(size: squareImageSize, format: rendererConfig) let compositedImage = renderer.image { ctx in squareImage.draw(in: CGRect(x: 0, y: 0, width: squareImageSize.width, height: squareImageSize.height)) myLogo?.draw(in: CGRect.setLogo(imageSize: squareImageSize)) } return compositedImage } |
위의 코드에서 rendererConfig에 opaque를 속성을 true로 주는 것이 핵심이다.
'CS > iOS' 카테고리의 다른 글
[iOS] Sprite Kit기초 내부 속성들 (0) | 2019.02.11 |
---|---|
[iOS] Universal Framework 만들기 (4) | 2018.05.15 |
[iOS]나만의 Framework만들기!! (0) | 2018.05.09 |
[iOS]FireBase Custom Token, KakaoTalk로그인하기. (2) | 2018.04.18 |
[iOS]# iOS 앱을 구성하는 핵심 객체들과 iOS 메인 런루프 동작 이해 (0) | 2017.12.29 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- swift camera 이미지 느림
- 스택
- QUAD
- string
- 코드스쿼드
- Swift
- 태그를 입력해 주세요.
- 자료구조
- Mobile Robot Kinematics
- slow image
- des
- 객체
- swift sprite kit
- skscene
- draw 이미지
- SKPhysicsbody
- ios custom camera capture
- image render
- C++
- UIGraphicsImageRendererFormat
- 영화
- sprite kit
- 만들기
- quadcopter
- ios sprite kit
- TDD
- custom Camera
- 스위프트
- ios
- swift custom camera
- Total
- Today
- Yesterday