создание NSimage из NSbitmapRep из int * с использованием NSData? - PullRequest
1 голос
/ 23 марта 2010

У меня есть int * данных rgb, width, height и scanlinestride, где я хочу создать NSImage.

Я посмотрел вокруг и обнаружил, что мне нужно использовать NSData?

Какой идеальный способ сделать это?

1 Ответ

9 голосов
/ 23 марта 2010

Используйте этот метод NSBitmapImageRep:

- (id)initWithBitmapDataPlanes:(unsigned char **)planes pixelsWide:(NSInteger)width pixelsHigh:(NSInteger)height bitsPerSample:(NSInteger)bps samplesPerPixel:(NSInteger)spp hasAlpha:(BOOL)alpha isPlanar:(BOOL)isPlanar colorSpaceName:(NSString *)colorSpaceName bitmapFormat:(NSBitmapFormat)bitmapFormat bytesPerRow:(NSInteger)rowBytes bitsPerPixel:(NSInteger)pixelBits

Серьезно. Это легко использовать, хотя:

NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc]
   initWithBitmapDataPlanes:(unsigned char **)&bitmapArray
   pixelsWide:width pixelsHigh:height
   bitsPerSample:8
   samplesPerPixel:3  // or 4 with alpha
   hasAlpha:NO
   isPlanar:NO
   colorSpaceName:NSDeviceRGBColorSpace
   bitmapFormat:0
   bytesPerRow:0  // 0 == determine automatically
   bitsPerPixel:0];  // 0 == determine automatically

NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize(width, height)];

[image addRepresentation:bitmap];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...