Мне нужна помощь с помощью CGContextDrawImage. У меня есть следующий код, который создаст контекст Bitmap и преобразует пиксельные данные в CGImageRef. Теперь мне нужно отобразить это изображение с помощью CGContextDrawImage. Я не очень понимаю, как я должен это использовать. Ниже приведен мой код:Как использовать CGContextDrawImage?
- (void)drawBufferWidth:(int)width height:(int)height pixels:(unsigned char*)pixels
{
const int area = width *height;
const int componentsPerPixel = 4;
unsigned char pixelData[area * componentsPerPixel];
for(int i = 0; i<area; i++)
{
const int offset = i * componentsPerPixel;
pixelData[offset] = pixels[0];
pixelData[offset+1] = pixels[1];
pixelData[offset+2] = pixels[2];
pixelData[offset+3] = pixels[3];
}
const size_t BitsPerComponent = 8;
const size_t BytesPerRow=((BitsPerComponent * width)/8) * componentsPerPixel;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef gtx = CGBitmapContextCreate(pixelData, width, height, BitsPerComponent, BytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast);
CGImageRef myimage = CGBitmapContextCreateImage(gtx);
//What code should go here to display the image?
CGContextRelease(gtx);
CGImageRelease(myimage);
}
Любая помощь или образец кода будет отличным. Заранее спасибо!
Большое спасибо за ответ! Я попробовал код, ничего не отображается. Может быть, я что-то упустил. Мне нужно указать представление или что-то еще? – Ereka
создать собственный класс (subview of UIView) добавить его в ваш просмотр программно, а затем в вашем настраиваемом классе переопределить метод "- (void) drawRect: (CGRect) rect". и напишите этот код там, попробуйте это. –
Если я просто вызвал метод drawInRect с изображением, то достаточно правильно? Мне не нужно переопределять drawRect, так как я только показываю и не делаю никаких изменений на изображении. – Ereka