Создание png UIImage из рисунка OpenGL

Я экспортирую свои рисунки OpenGL в UIImage, используя следующий метод:

-(UIImage*)saveOpenGLDrawnToUIImage:(NSInteger)aWidth height:(NSInteger)aHeight { NSInteger myDataLength = aWidth * aHeight * 4; GLubyte *buffer = (GLubyte *) malloc(myDataLength); glReadPixels(0, 0, aWidth, aHeight, GL_RGBA, GL_UNSIGNED_BYTE, buffer); GLubyte *buffer2 = (GLubyte *) malloc(myDataLength); for(int y = 0; y < aHeight; y++) { for(int x = 0; x < aWidth * 4; x++) { buffer2[(aHeight-1 - y) * aWidth * 4 + x] = buffer[y * 4 * aWidth + x]; } } CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, buffer2, myDataLength, NULL); int bitsPerComponent = 8; int bitsPerPixel = 32; int bytesPerRow = 4 * aWidth; CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault; CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault; CGImageRef imageRef = CGImageCreate(aWidth, aHeight, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, bitmapInfo, provider, NULL, NO, renderingIntent); UIImage *myImage = [UIImage imageWithCGImage:imageRef]; return myImage; } 

Но фон всегда черный, а не прозрачный.

Я попытался использовать CGImageRef imageRef = CGImageCreateWithPNGDataProvider(provider, NULL, NO, kCGRenderingIntentDefault); но он всегда генерирует нуль.

Как я могу заставить это обрабатывать прозрачный фон?

One Solution collect form web for “Создание png UIImage из рисунка OpenGL”

Это вопрос о том, как создать изображение из необработанных RGBA-данных. Я думаю, что вам не хватает дескриптора в информации растрового изображения, чтобы сказать, что вам нужен альфа-канал …

Попробуйте создать UIImage из необработанных данных RGBA

В первом комментарии описывается использование kCGBitmapByteOrder32Big|kCGImageAlphaLast

  • Изображение IOS UIImage перевернуто
  • Несколько CIFilters в одном CIImage?
  • iOS Swift. Как получить метаданные GPS только из UIImage (NSURL)?
  • Как применить цветные фильтры HSB к UIImage
  • Как сжать уменьшение размера изображения перед загрузкой в ​​Parse как PFFile? (Swift)
  • Как изменить изображение tintColor в iOS и WatchKit
  • Как получить размер UIImage в КБ?
  • UIImage от AVCaptureVideoPreviewLayer
  • Изменение размера UIImage - Проблемы с производительностью
  • Добавление отступов и границ к UIImageView
  • Ориентация изображения камеры
  • Interesting Posts

    Почему я столкнулся с сбоем при сравнении мостов CGColorRefs под ARC?

    Создание привязки Теоса к определенной категории класса

    Поверните UIView в раскадровке с помощью iOS6

    WatchConnectivity, как разделить сеанс между несколькими WKInterfaceControllers?

    UICollectionView чрезвычайно отстает, когда я просматриваю вверх или вниз

    Как отправить дополнительный параметр в функцию addtarget?

    Xcode создает ошибку SSL при попытке загрузить приложение в App Store

    Ошибка CodeSign: требуется подписание кода для типа продукта «Приложение» в SDK «iOS 5.1»

    Синхронизация ABAddressbook-Entries

    Преобразование долготы / широты в x / y на iPhone

    Открытие веб-браузера Safari при входе в FB через iOS 9

    Использование LDAP для аутентификации в iOS

    Как определить, что пользователь выбирает Не разрешать для MKMapView для iphone

    2D кросс-платформенный игровой движок для Android и iOS?

    iOS – приложение «Речь в текст» с использованием Swift

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.