2013-07-11 3 views
1

이중 정밀도 값을 포함 할 수있는 NSImageRep 서브 클래스를 작성하는 데 관심이 있습니다. 표준 NSBitmapImageRep은 단 정밀도 부동 소수점을 포함 할 수 있지만 double 형을 초크 할 수 있습니다. NSBitmapImageRep은 조작을 위해 데이터 버퍼를 노출하고 표시를 위해 이미지로 변환해야하는 별도의 버퍼를 조작하는 대신 데이터를 조작 할 수있는 기능을 유지하고 싶습니다.-Draw를 구현하는 방법 사용자 정의 NSImageRep 서브 클래스

서브 클래 싱은 가장 기본적인 부분을 처리하는 방법을 잘 모르겠다는 점을 제외하면 꽤 똑바로 진행됩니다. 이미지 그리기. 문서는 -draw를 구현해야하는 방법으로 나열합니다. 이는 의미가 있지만 비트 맵을 그릴 수있는 가장 좋은 방법은 무엇입니까? How to Implement Custom Image representation for NSImage

보다 효율적인 방법이 있나요 :

나는 작은 사각형의 많은, 아마도 픽셀 당 하나를 그리는 하나 개의 주저 제안을했다? 나는 보았고 비트 맵 데이터로 사용자 정의 된 NSImageRep의 작업 예제를 찾을 수 없습니다. 대부분의 예제는 벡터 데이터를 사용합니다.

또한 구현할 메서드가 단순히 그리기 만하고 제한된 그리기가 아니라는 점이 흥미 롭습니다. NSImageRep 내에서 현재 클리핑 영역이 무엇인지를 결정하는 방법이 있습니까? 아니면 필요하지 않은 부분을 그리는 것을 피할 수 있습니까?

답변

1

이 시점에서이 게시물에 대한 해결책을 찾았 겠지만, 아직 관심이 있다면 여기에 대한 결과가 있습니다.

내 자신을 구현할 때 발견 한 것은 NSImageRep입니다. 비효율적 인 방법이 많으며 반드시 간단하게 -(BOOL)draw 메서드 만 구현할 필요는 없습니다. -(BOOL)drawInRect: 구현을 제공하면 대부분의 경우 대신 사용됩니다. 사실 NSImageRep 하위 클래스에서 -(BOOL)drawInRect:이있을 때 나는 아직 -(BOOL)draw이 호출 된 것을 볼 수 있습니다.

실제 그림의 경우 코어 데이터를 사용하고 있습니다.이 그래픽을 사용하면 원시 데이터에서 이미지를 만들고 매우 빠른 제어와 정밀도로 이미지를 그릴 수 있습니다. 제 표현은 여전히 ​​미숙 한데도 큰 이미지를 다룰 때조차도 빠릅니다.

전체 제목은 이전 표준 (TIFF, PNG, JPEG 등) 이외의 추가 표현이 거의 필요하지 않기 때문에 문서가 거의 부족합니다. 연구를하는 것이 오히려 실망 스럽습니다. 제가 시간을 갖게되면, 내가 쓴 모든 것을 자세하게 설명하는 블로그 포스트를 작성하는 것에 대해 알게 될 것입니다.

+0

질문에 대한 답변이 있으면 받아 들일 수있는 것으로 표시하십시오. – Alexander