안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요~_~ 질문드리겠습니다!!!
canvas에 비트맵과 패스를 이용하여 그리고 있는 상태에서 특정영역을 비트맵으로 저장하려면 어떻게 해야할까요?
비트맵과 패스는 고유의 크기와 좌표값을 가지고 있습니다.
비트맵 사진위에 패스로 그림을 그리고있는 상태이구요.. 사진영역만 잘라내서 저장을 하려합니다.
new canvas(Bitmap src); 를 해서 저장하자니.. 비트맵의 원래 크기와 패스의 좌표 크기등을 보정해야하더군요..
안되면 이렇게라도 해야겠지만, 씸플한 방법이 없나 알고싶습니다~~~~ 키워드만 주세요 굽신굽신 ㅠㅠㅠㅠㅠ
반갑습니다 :)
자답입니다. 스택 오버플로우를 찾아봐도 안나와서 결국은 우회했습니다.
현재 상태는 커스텀뷰의 ondraw()에서 비트맵과 터치이벤트로 만들어진 패스를 그리고있습니다.
비트맵은 크기와 좌표가 있고, 패스는 선 굵기, 위치 등을 가지고있습니다.
new Canvas(Bitmap src) 로 캔버스를 하나 생성하면서 비트맵을 연결시켰습니다.
저 같은 경우는 비트맵 화질을 유지하려다보니, 원본 이미지가 크기때문에 Path의 비율도 바꿔줘야했습니다.
(비트맵을 화면에 표시되는 크기로 다시 만들어줘도 화질이 떨어지네요..뭐지?)
canvas.scale 로 캔버스의 비율을 바꿔주었구요.
canvas.translate 로 좌표를 보정했습니다.
그런 뒤 패스를 출력하고 저장했습니다.
화면에 표시된 것과 거의 동일하게 출력되네요 ㅠ