Как представить к внеэкранному битовому массиву, тогда блитируют для экранирования Графики Ядра использования

Кроме того, другое решение гарантирует, что ваши элементы управления создаются в потоке пользовательского интерфейса, а не потоком рабочего потока, например.

18
задан Frank Krueger 4 January 2009 в 02:30
поделиться

3 ответа

Для рендеринга во внеэкранный контекст и сохранения его как CGImageRef:

void *bitmapData = calloc(height, bytesPerLine);
CGContextRef offscreen = CGBitmapContextCreate(..., bitmapData, ...)
// draw stuff into offscreen
CGImageRef image = CGBitmapContextCreateImage(offscreen);
CFRelease(offscreen);
free(bitmapData);

Для рисования на экране:

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextDrawImage(context, rect, image);
}

Вы также можете просто сохранить изображение в свойстве содержимого слоя вида (view.layer.content = изображение), или использовать UIImageView.

.
15
ответ дан 30 November 2019 в 08:53
поделиться

Используйте CGDataProviderCreateWithData и CGImageCreate, если Вы не нуждаетесь в растровом контексте и просто хотите CGImageRef.

2
ответ дан 30 November 2019 в 08:53
поделиться

Можно использовать CGBitmapContext. Можно генерировать изображение от CGBitmapContext и потянуть его во время drawRect.

3
ответ дан 30 November 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: