2010-04-30 1 views

답변

1

텍스트 렌더링은 매우 복잡한 주제이므로 여기에있는 모든 대답은 많은 것들을 통해 윤곽을 그릴 것입니다. 서체는 일반적으로 비트 맵이 아닌 벡터 형식으로 저장됩니다. 시스템은 각 문자의 메트릭을 계산하여 텍스트를 배치하고 화면에 표시되는 비트 맵으로 렌더링되는 벡터 모양을 작성합니다. 안티 앨리어싱 및 서브 픽셀 렌더링 방식이 작동하기 때문에 시스템이 비트 맵으로 개별 문자 양식을 캐시하지 않을 수 있습니다. 그러나 일반적인 컴퓨터 디스플레이는 픽셀로 구성되기 때문에 모든 벡터 그래픽은 비트 맵으로 변환됩니다.

+0

그래서 나는 그 대부분을 알고있었습니다. 아마도 제 질문에 더 자세히 설명되어 있었을 것입니다. 내가 마지막으로 확인한 시간은 iPhone을 확대하는 동안 확대/축소를 멈출 때까지 텍스트가 흐려집니다. 무슨 일이 일어날 것 같아요 확대 비트가 중지 될 때까지 원래 비트 맵 크기가 조정됩니다, 그 시점에서 적절한 크기의 새 비트 맵 계산됩니다. Android 2.0에서는 실시간 크기 조정을 수행합니다. 흐리게하지 않습니다. 그게 제가 알아 내고 싶었던 것입니다 - 어떻게? 매우 비싼 조작이기 때문에 비늘대로 새로운 비트 맵을 생성하면 매우 놀랍습니다. – rcoyner

+0

"안티 앨리어싱 및 서브 픽셀 렌더링 방식이 작동하기 때문에 시스템이 개별 문자 양식을 비트 맵으로 캐시하지 않을 것입니다." 실제로 내가 아는 한 (그리고 나는 두 개의 OS를위한 텍스트 렌더링 시스템 인 Symbian과 RIM OS의 저자이다.) 시스템은 항상 개별 글자의 비트 맵을 캐시한다. 글리프 래스터 화는 빠르지 만 캐시가 도움이되지 않을만큼 빠르지는 않습니다. –

관련 문제