Yazdırma için bir PDF oluşturmak için kullanılan bir Kakao uygulamasındaki NSViews kapalı ekran dizilim var. Görünümler bir NSWindow'da veya herhangi bir şekilde görünür değildir.Ekrandan ölçeklendirilmiş görüntü üretin NSView
Tam olarak PDF'nin göründüğü, ancak belirli bir piksel boyutuna (genişlik veya yükseklikle sınırlandırılmış) sığacak şekilde küçültülmüş bu görünümün küçük resimlerini oluşturmak istiyorum. Bu, olabildiğince hızlı olmalı, bu yüzden PDF'ye görüntülemekten kaçınmak, sonra raster ve ölçeklemeye dönüştürmek istiyorum - rastere doğrudan gitmek istiyorum. Ben yapıyorum anda
: Bu yaklaşım iyi çalışıyor, ama bitmapImageRep oluşturma işlemi öncesinde NSView bir ölçeklendirme nasıl uygulanacağını dışarı çalışamaz
NSBitmapImageRep *bitmapImageRep = [pageView bitmapImageRepForCachingDisplayInRect:pageView.bounds];
[pageView cacheDisplayInRect:pageView.bounds toBitmapImageRep:bitmapImageRep];
NSImage *image = [[NSImage alloc] initWithSize:bitmapImageRep.size];
[image addRepresentation:bitmapImageRep];
. scaleUnitSquareToSize
'u kullanmaktan kaçınmak istiyorum çünkü bunu anladığım kadarıyla NSView çerçevesini değil, sadece sınırları değiştiriyor.
Bunu yapmanın en iyi yolu hakkında herhangi bir öneriniz var mı?
Başlatıldığında bir dizüstü bilgisayar uygulaması için dinamik olarak küçük resimler oluşturmak üzere 'bitmapImageRepForCacheDisplayInRect:' ve 'cacheDisplayInRect: toBitmapImageRep:' kullanıyordum. Çok sayıda görsel içeriğe sahip 40 sayfalık (katman barındırılan NSView'ler) ile, küçük resimler oluşturmak 90 saniyeye yaklaşıyordu. Bu, önceki macOS sürümlerinde geçerli değildi. Ben bu yöntemi @ tomtaylor'un yaklaşımıyla, 1.0'lık bir ölçek kullanarak (tam boyuta doğru yukarı doğru ölçeklendirmek için küçük resimlere ihtiyacım var) ve küçük resim neslinin 20 saniyeliğine (arka plan) düştüğünden, sanal bellek kullanımının yaklaşık yarısı ile değiştirdim! – Dalmazio