Как сделать закадровый IOS

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

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

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


person egdenis    schedule 07.03.2015    source источник


Ответы (2)



Вот как вы можете создать контекст изображения, нарисовать его с помощью вызовов 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;

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

person Community    schedule 29.03.2015