2010-12-14 10 views
6

Obtuve una imagen con una sola representación, y era NSCGImageSnapshotRep.NSCGImageSnapshotRep, cómo obtener bitmapData

Probé [NSCGImageSnapshotRep bitmapData] pero, la clase no tiene selector para bitmapData.

¿Alguien conoce esta clase? ¿Cómo puedo obtener el bitmapData?


estoy recibiendo este NSImage de Webkit [DOMElement renderedImage].

Create bitmap of a DOMElement Objective C

El uso correcto es [NSBitmapImageRep representationUsingType:id properties:id], esto significa que no funciona en el caso.

Yo no pienso en dispositivos soportados, estaré contento de encontrar una solución 10.5 + o 10.6+.

+1

¿Necesita compatibilidad 10.5, o es 10.6-solo una posibilidad? – NSGod

+0

NSCGImageSnapshotRep es una subclase privada de NSImageRep. Desafortunadamente, no tiene los métodos que tendría una subclase de NSBitmapImageRep. ¿Cómo está creando esta imagen, leyéndola desde un archivo? – NSGod

Respuesta

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

Esto produce una imagen a escala 2x en pantallas Retina. Esta respuesta funcionó para mí, produciendo 1x imágenes en pantallas Retina: http://stackoverflow.com/a/24063823/105717 – Dov

Cuestiones relacionadas