Stworzyłem 32-bitowy NSImage z następującym kodem.Jak utworzyć 8-, 4- i 1-bitowe reprezentacje NSImage
NSBitmapImageRep *sourceRep = [[NSBitmapImageRep alloc] initWithData: imageData];
// create a new bitmap representation scaled down
NSBitmapImageRep *newRep =
[[NSBitmapImageRep alloc]
initWithBitmapDataPlanes: NULL
pixelsWide: imageSize
pixelsHigh: imageSize
bitsPerSample: 8
samplesPerPixel: 4
hasAlpha: YES
isPlanar: NO
colorSpaceName: NSCalibratedRGBColorSpace
bytesPerRow: 0
bitsPerPixel: 0];
// save the graphics context, create a bitmap context and set it as current
[NSGraphicsContext saveGraphicsState] ;
NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithBitmapImageRep: newRep];
[NSGraphicsContext setCurrentContext: context] ;
// draw the bitmap image representation in it and restore the context
[sourceRep drawInRect: NSMakeRect(0.0f, 0.0f, imageSize, imageSize)] ;
[NSGraphicsContext restoreGraphicsState] ;
// set the size of the new bitmap representation
[newRep setSize: NSMakeSize(imageSize,imageSize)] ;
NSDictionary *imageProps2 = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithFloat:1.0], kCGImageDestinationLossyCompressionQuality,
nil];
imageData = [newRep representationUsingType: NSPNGFileType properties: imageProps2];
NSImage *bitImage = [[NSImage alloc]initWithData:imageData];
Teraz trzeba utworzyć 8 bit (256 kolorów), 4-bitowe (16 kolorów, 1 bit) (czarno-biały) NSBitmapImageRep
& reprezentacji. co chcę teraz zrobić?
Czy brałeś pod uwagę filtry Core Image? – uchuugaka
@ peterhosey, wszelkie ograniczenia dotyczące licencji lub środowiska wykonawczego? jak musi być dostępny jako zbudowany w lib w 10.6 itd.? –
@GradyPlayer: Nie mam żadnych takich ograniczeń, nie. (Po prostu płaci się za pytania na święta, nie potrzebuję tego do pracy lub czegoś.) –