Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue No
Overview (Required)
captureIntoCanvas
를 사용할 예정이어서 요거 머지한 다음에 머지할게요~=> [#289] 히스토리 상세화면 공유하기 기능 추가 #318
원인
captureIntoCanvas
함수에 있음captureIntoCanvas
은 Composable 이 attach 되었을 때 인자로 전달받은 Picture 에 바로 그림을 그려주고, Picture 에 그려진 것을 Composable 에 그리는 식으로 구현되어있다.drawWithCache
는 그려둔 것을 캐시해두었다가 영역의 크기가 같거나, state 객체가 변경되지 않으면 캐시한 것을 내보내주어 그리기 횟수를 최소화하기 위한 함수이다. (공식문서 참조링크)AsyncImage
는 이미지를 비동기로 가져와서 업데이트가 되면,AsyncImage
Composable 에 네트워크로부터 가져온 비트맵 이미지를 업데이트 하는 구조임해결방법
CaptureController.captureAsync
와 같은 함수를 통해 내부 flow에 신호를 보내주면, Modifier Node 에서 flow 를 관찰하고 있다가 신호가 들어왔을 때captureIntoCanvas
의 로직을 실행하고 얻은 Picture 객체를 bitmap 으로 변환하여 반환하는 식으로 구현하였음.Screenshot
Before
_2024_09_22_13_26_02_730.mp4
After
_2024_09_22_13_24_10_219.mp4