Я пытаюсь быстро создать белое и прозрачное изображение из массива [Uint8]
. Массив имеет width * height
элементов, и каждый элемент соответствует прозрачности (альфа-значение).
Пока мне удалось создать черно-белое изображение, используя это:
guard let providerRef = CGDataProvider(data: Data.init(bytes: bitmapArray) as CFData) else { return nil }
guard let cgImage = CGImage(
width: width,
height: height,
bitsPerComponent: 8,
bitsPerPixel: 8,
bytesPerRow: width,
space: CGColorSpaceCreateDeviceGray(),
bitmapInfo: CGBitmapInfo.init(rawValue: CGImageAlphaInfo.none.rawValue),
provider: providerRef,
decode: nil,
shouldInterpolate: true,
intent: .defaultIntent
) else {
return nil
}
let image = UIImage(cgImage: cgImage)
к сожалению, как я уже сказал, это дает мне черно-белое изображение.
Я хотел бы превратить каждый черный пиксель (0 в моем исходном массиве) в полностью прозрачный пиксель (мой массив содержит только 0 или 255). Как я могу это сделать ?
PS: я пытался использовать CGImageAlphaInfo.alphaOnly
, но получаю «CGImageCreate: недопустимое изображение alphaInfo: 7»
Любая помощь будет оценена.