내 앱 중 하나에서 CoreGraphics 프레임 워크 (CGContextRef
등)를 사용하여 그림을 그리는 UIImage
부분을 지우고/투명한 획을 시도하고 있습니다. 잘 과정에서 "removeAllObjects"메시지를 호출하여 한 번에 그림을 지울 수 있지만 그림을 그리는 방법을 알아낼 수 없었습니다. 이런! 나는 하루 종일 앉아 있었지만 여전히 결과가 없었다. 제발 여기에서 나를 도와주세요. 간단히 말해, 제 요구 사항은 제 그림 이미지의 일부를 지울 수있는 지우개와 같습니다. 당신의 도움을 주셔서 감사합니다!!CoreGraphics 프레임 워크를 사용하여 지우기 또는 투명한 획과 관련된 문제
4
A
답변
-1
일반적으로 CGContext
은 첨가제 전용 캔버스입니다. 즉, 더 많은 페인트를 추가 할 수 있으며 기존 페인트를 제거하지 않습니다. 캔버스가 처음부터 흰색 이었으면 흰색으로 페인트 칠하여 가짜로 만들고 작업을 지울 수 있습니다.
간단한 해결책은 지우기 비트 맵의 영역을 지울 때 수동으로 지우는 것입니다. CGContextClearRect
있습니다 :
복잡한 솔루션은 사용자가 입력하는 모든 그림 작업을 저장하고
참고 (이 또한 간단한 실행 취소 모드를 추가하는 것)을 삭제 연산의 결과로 변형하는 것입니다 함수가 있지만 일반적으로 비트 맵 컨텍스트에서 예상대로 작동합니다.
5
그냥 CGContextSetBlendMode(context, kCGBlendModeClear)
이 호출 그리기 작업은 비트 맵을 삭제하는 대신 색으로 그리기 될 수있는 방식으로 색상 혼합 모드를 변경을한다.
는 정상 렌더링으로 전환 매우 도움이 될 수있는 다른 블렌딩 모드를 사용하여 CGContextSetBlendMode(context, kCGBlendModeNormal)
수행합니다.
관련 문제
- 1. 엔터티 프레임 워크를 사용하여 파일로드
- 2. 엔터티 프레임 워크를 사용하여 GetUTCDate
- 3. 그리드 CSS 프레임 워크를 사용하여 찬반 양론
- 4. 투명한 토스트 프레임
- 5. 아약스 프레임 워크를 extjs 또는 raxan에 사용해야합니까?
- 6. DI 프레임 워크를 사용하여 현지화 - 좋은 생각이십니까?
- 7. CoreGraphics 대체품?
- 8. REST API와 관련된 프레임 워크
- 9. 웹 응용 프로그램 : 프레임 워크 또는 프레임 워크를 사용하지 않습니까?
- 10. 각 실행 후 tracelistener와 관련된 로그 지우기?
- 11. ExtJS의 Combobox와 관련된 문제
- 12. 엔티티 프레임 워크를 사용하여 엔티티와 데이터베이스 매핑
- 13. WebKit 프레임 워크를 사용하여 swf 파일 열기
- 14. TWAnalyzerClient 프레임 워크를 사용하여 중복 된 ASIHTTPRequest.h
- 15. NSMutableArray를 JSON- 프레임 워크를 사용하여 JSON으로 보냄
- 16. ado.net 엔터티 프레임 워크를 사용하여 gridview 정렬
- 17. 누구나 줄무늬 프레임 워크를 사용하여 스칼라를 시도했습니다.
- 18. symfony 프레임 워크를 사용하여 PDF 파일 생성
- 19. ADO.Net 엔터티 프레임 워크를 사용하여 삭제하는 방법
- 20. qt 프레임 워크를 사용하여 아카이브 조작
- 21. 엔티티 프레임 워크를 사용하여 테이블을 탐색하려면 어떻게해야합니까?
- 22. 젠드 프레임 워크를 사용하여 트리 dijit 표시
- 23. 젠드 프레임 워크를 사용하여 특정 뷰를로드하려면 어떻게해야합니까?
- 24. 엔티티 프레임 워크를 사용하여 "Col1, Col2로 주문"
- 25. 엔티티 프레임 워크를 사용하여 데이터베이스에 파일 저장
- 26. XMPP 프레임 워크를 사용하여 메시지를 보내는 방법
- 27. 엔티티 프레임 워크를 사용하여 uniqueidentifier를 반환합니다.
- 28. 젠드 프레임 워크를 사용하여 이메일을 검색하려면 어떻게해야합니까?
- 29. 젠드 프레임 워크를 사용하여 세션을 저장하고 싶습니다
- 30. 엔티티 프레임 워크를 사용하여 데이터베이스를 채우는 방법
CGContextSetBlendMode를 시도해 보았습니다. 방향을 바꾸고 있습니다. 그걸 호출 할 수 없으므로 해당 버퍼에있는 드로잉 객체를 유지하기 위해 NSMutableArray를 사용하여 that.removeAllObjects가 호출되었습니다. removeAllObjects message.My 응용 프로그램은 세 개의 탭 막대 항목이 있습니다. 하나는 도면 이미지를 저장하고 두 번째는 이미지를 지우고 세 번째는 방금 게시 한 도면 이미지 (MSPaint의 지우개와 같은 것)의 일부를 지우거나 지우는 것입니다. 여기 내 쿼리로. CoreGraphics/2D 물리학이 아직 좋지 않은만큼 도와주세요. – Manab
가짜 및 지우기에 대한 첫 번째 해결책은 시도 할 수 있습니다. 솔직히 여기에 CGContextClearRect에 대한 사전 지식이 없으므로 더 많은 것을 알아야합니다. – Manab
최선의 방법은'CGBitmapContextCreate'를 사용하여 자신의 버퍼를 제공하는 것입니다. 그런 다음 자신의 지우기 코드를 사용하여 직접 수정할 수 있습니다 – rpetrich