【发布时间】:2020-02-28 10:19:16
【问题描述】:
PS:我想要的结果是 [Bool] 格式。即,0 表示背景,1 表示除背景以外的任何颜色。
我有一个每像素 32 位的 UIImage。如何制作二值图像(即 1bit .bmp 图像)
我正在使用下面的代码:但它全部为零
public extension UIImage {
func pixelData() -> [UInt8]? {
let size = self.size
let dataSize = size.width * size.height
var pixelData = [UInt8](repeating: 0, count: Int(dataSize))
let colorSpace = CGColorSpaceCreateDeviceRGB()
let context = CGContext(data: &pixelData,
width: Int(size.width),
height: Int(size.height),
bitsPerComponent: 1,
bytesPerRow:Int(size.width),
space: colorSpace,
bitmapInfo: CGImageAlphaInfo.noneSkipLast.rawValue)
guard let cgImage = self.cgImage else { return nil }
context?.draw(cgImage, in: CGRect(x: 0, y: 0, width: size.width, height: size.height))
return pixelData
}
}
【问题讨论】:
-
已编辑。我必须使用哪个色彩空间?灰色样式可以吗?
标签: ios swift image-processing