인쇄를 위해 PDF를 작성하는 데 사용되는 코코아 응용 프로그램에서 화면 NSViews의 시퀀스가 있습니다. 뷰는 NSWindow에 없거나 어떤 방식 으로든 볼 수 있습니다.오프 스크린 NSView에서 크기 조정 된 이미지 생성
PDF보기와 똑같은 축소판 이미지를 생성 할 수 있지만 특정 픽셀 크기 (너비 또는 높이 제한)에 맞춰 축소 할 수 있기를 바랍니다. 가능한 한 빨리 처리해야하므로 PDF로 렌더링하지 말고 래스터로 변환 한 다음 스케일을 조정하십시오. 래스터로 직접 가고 싶습니다. 내가 뭘 순간
:이 방법은 잘 작동하지만, 나는 bitmapImageRep을 렌더링하기 전에 NSView의에 스케일링을 적용하는 방법을 작동하지 않을 수
NSBitmapImageRep *bitmapImageRep = [pageView bitmapImageRepForCachingDisplayInRect:pageView.bounds];
[pageView cacheDisplayInRect:pageView.bounds toBitmapImageRep:bitmapImageRep];
NSImage *image = [[NSImage alloc] initWithSize:bitmapImageRep.size];
[image addRepresentation:bitmapImageRep];
. scaleUnitSquareToSize
을 사용하는 것을 피하고 싶습니다. NSView의 프레임이 아니라 경계 만 변경하기 때문에 이해합니다.
가장 좋은 방법은 무엇입니까?
시작시 노트북 응용 프로그램의 축소판을 동적으로 생성하기 위해'bitmapImageRepForCacheDisplayInRect :'및'cacheDisplayInRect : toBitmapImageRep :'를 사용하고있었습니다. 시각적 컨텐츠가 많은> 40 페이지 (레이어 호스팅 NSViews)에서 축소판 생성은 90 초 가까이 걸렸습니다. 이전 버전의 macOS에서는 그렇지 않았습니다. 나는이 방법을 위의 @tumtaylor의 접근법으로 바꿨다. 1.0의 눈금을 사용했기 때문에 (엄지 손가락을 풀 사이즈로 늘리려면 엄지 손가락이 필요했기 때문에) 썸네일 세대는 20 초 (배경)로 내려 갔다. – Dalmazio