2010-12-14 7 views
6

Ich habe ein Bild mit nur einer Darstellung, und das war ein NSCGImageSnapshotRep.NSCGImageSnapshotRep, wie erhalten BitmapData

Ich versuchte [NSCGImageSnapshotRep bitmapData], aber die Klasse hat keinen Selektor für bitmapData.

Kennt jemand diese Klasse? Wie kann ich die bitmapData bekommen?


Ich bekomme diese NSImage von Webkit [DOMElement renderedImage].

Create bitmap of a DOMElement Objective C

Der richtige Einsatz ist [NSBitmapImageRep representationUsingType:id properties:id], bedeutet dies im Fall nicht funktioniert.

Ich glaube nicht, über compatibily, werde ich froh sein, eine Lösung 10.5+ oder 10.6+ zu finden.

+1

Benötigen Sie 10.5 Kompatibilität, oder ist 10.6 - nur eine Möglichkeit? – NSGod

+0

NSCGImageSnapshotRep ist eine private Unterklasse von NSImageRep. Leider hat es nicht die Methoden, die eine Unterklasse von NSBitmapImageRep hätte. Wie erstellen Sie dieses Bild, indem Sie es aus einer Datei einlesen? – NSGod

Antwort

12
NSImage *img = [DOMElement renderedImage] ; 
[img lockFocus] ; 
NSBitmapImageRep *bitmapRep = [[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0.0, 0.0, [img size].width, [img size].height)] ; 
[img unlockFocus] ; 

... 

// don't forget when you are done with the rep: 
[bitmapRep release] ; 
+0

Dies erzeugt ein 2x skaliertes Bild auf Retina-Displays. Diese Antwort funktionierte für mich und erzeugte 1x Bilder auf Netzhautanzeigen: http://stackoverflow.com/a/24063823/105717 – Dov

Verwandte Themen