2015-03-07 4 views
1

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

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

Я искал бесконечно, но я очень смущен различиями между UIcontexts и CGContext. В моей текущей попытке я использую CGBitmapContext, но безрезультатно. Любая помощь была бы очень признательна (желательно быстро, но все идет).

ответ

1

Вы можете использовать графический контекст в виде растровой графики, как описано here.

+1

@egdenis Если это не поможет, вы должны, вероятно, опубликовать (соответствующие выдержки) свой текущий код. – Drux

1

Вот как вы можете создать контекст изображения, привлечь к нему с помощью CG вызовов, а затем получить UIImage:

// Create an N*N image 
CGSize size = CGSizeMake(N, N); 
UIGraphicsBeginImageContext(size); 
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
// EG: 
CGColorRef backColor = [UIColor lightGrayColor].CGColor; 
CGContextSetFillColorWithColor(ctx, backColor); 
CGContextFillRect(ctx, r1); 
.... more drawing code 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Вы можете получить CGImageRef очень легко:

CGImageRef cgImage = image.CGImage; 

Наконец , вы можете получить базовые байты, как описано here.

Смежные вопросы