CGContext.init возвращает ноль

#swift #macos #core-graphics #cgcontext

#swift #macos #ядро-графика #cgcontext

Вопрос:

Я создаю простое графическое приложение с движущимися объектами и некоторой анимацией для Mac OS.

Что я пытаюсь сделать, так это создать растровое изображение в памяти, которое должно быть отображено в реальном контексте в конце кадра (не уверен, что CG является правильным способом сделать это):

 let tempBitmap = CGContext.init (data: nil, width: width, 
    height: height, bitsPerComponent: 8, bytesPerRow: 0, space: CGColorSpaceCreateDeviceRGB(),  
    bitmapInfo: CGImageAlphaInfo.none.rawValue)
  

но это всегда возвращается nil .

Каков правильный способ создания растрового изображения в памяти?

Ответ №1:

Ваша комбинация не поддерживается. У вас не может быть цвета RGB без альфа. Список поддерживаемых форматов пикселей приведен в руководстве по программированию Quartz 2D.

Вы можете игнорировать альфа-код («никто не пропускает первым» или «никто не пропускает последним»), но вы не можете работать напрямую с 24-битными (3×8) пикселями, упакованными.

Комментарии:

1. @Elagoff meta.stackexchange.com/questions/5234 /…