У меня есть код что-то вроде этого ...Buffere запись становится медленным после CGBitmapContextCreate
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef ctx = CGBitmapContextCreate(pixelArray, width, height, 8, 4 * width, colorSpace, kCGImageAlphaNoneSkipLast);
CGImageRef createdImage = CGBitmapContextCreateImage (ctx);
uiImage = [[UIImage imageWithCGImage:createdImage] retain];
Проблема заключается в том, что, когда я создаю CGImage и UIImage из буфера (pixelArray), любые операции записи в буфер становится по крайней мере, на 4 раза медленнее. Это происходит только на iPad-устройстве, а не на iPhone. Есть ли проблемы с одной проблемой? Что здесь происходит?
Вот код операции записи, и я называю это в петлях (SetPixel) ...
- (RGBA*) getPixel:(NSInteger)x y:(NSInteger)y {
// Bound the co-cordinates.
x = MIN(MAX(x, 0), width - 1);
y = MIN(MAX(y, 0), height - 1);
// yIndexes are pre populated
return (RGBA*)(&pixelArray[(x + yIndexes[y]) << 2]);
}
- (void) setPixel:(RGBA*)color x:(NSInteger)x y:(NSInteger)y {
// Bound the co-cordinates.
x = MIN(MAX(x, 0), _width);
y = MIN(MAX(y, 0), _height);
memcpy([self getPixel:x y:y], color, 3);
colorDirtyBit = YES;
}
Сообщите нам свой код для вашей операции записи? – tia
Я обновил вопрос с помощью кода записи. – Abix