두 개의 다른 이미지가있는 두 개의 이미지 뷰가 하나씩 있습니다. 사용자가 이미지를 터치하고 손가락을 움직이면 상단 이미지가 고정 된 반경의 터치 포인트를 따라 투명 해져야합니다. (PhotoChop 앱과 마찬가지로).터치로 CGImage (또는 UIImage)의 알파를 편집하고 표시하는 가장 빠른 방법은 무엇입니까?
현재 내가 이런 식으로하고있는 중이 야 ... 각 터치
- .
- 상단 이미지의 CGImage에서 이미지 버퍼의 복사본을 가져옵니다.
- 버퍼의 알파 채널을 편집하여 터치 포인트를 중심으로 투명한 원을 만듭니다.
- 버퍼에서 새 CGImage를 만듭니다.
- CGImage에서 UIImage를 만들고 새 UIImage를 맨 위 이미지보기의 이미지로 사용하십시오.
이 방법이 효과적이지만 사본이 너무 많아 생성이 복잡하고 느립니다.
누군가 나에게 똑같은 일을하는 더 빠른 방법을 제안 할 수 있습니까?
나는 drawnonward의 답변에 대한 아이디어를 가지고있었습니다. 원래 이미지를 CALayer (A)의 내용으로 유지할 수있었습니다. (A)의 'mask'속성을 마스크 이미지로 설정하십시오. 사용자가 화면을 터치하면 마스크 이미지를 적절하게 수정하십시오. 나는 이것이 더 적은 메모리 복사본을 포함 할 수 있다고 생각한다. – nielsbot
drawnonward : 귀하의 제안은 각 업데이트에 CGImage를 그려야합니까? CALayer + 마스크를 사용하는 것이 더 효율적인지 궁금합니다. – nielsbot