大佬教程收集整理的这篇文章主要介绍了ios – 在Swift中将UIImage转换为UInt8数组,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在对此进行大量研究,并且已经将几种不同的解决方案集成到我的项目中,但它们似乎都没有.我目前的解决方案是从this thread借来的.
>像素阵列保持初始化但未填充(全0)
>我得到两个错误:
CGBitmapContextCreate:不支持的参数组合:设置CGBITMAP_COntexT_LOG_ERRORS环境变量以查看详细信息
和
CGContextDrawImage: invalid context 0x0. If you want to see the BACktrace,please set
有任何想法吗?这是我当前构建的函数,我正在调用我的Image类:
init?(fromImage image: UIImage!) { let imageRef = image!.CGImage self.width = CGImageGetWidth(imageRef) self.height = CGImageGetHeight(imageRef) let colorspace = CGColorSpaceCreateDeviceRGB() let bytesPerRow = (4 * width); let bitsPerComponent :UInt = 8 let pixels = UnsafeMutablePointer<UInt8>(malloc(width*height*4)) var context = CGBitmapContextCreate(pixels,width,height,Int(bitsPerComponent),bytesPerRow,colorspace,0); CGContextDrawImage(context,CGRectMake(0,CGFloat(width),CGFloat(height)),imageRef)
任何指针都会有很大的帮助,因为我不熟悉所有这些CGBitmap的工作原理.
万分感谢!
支持的bitsPerComponent,colorspace和bitmapInfo组合可以在这里找到:
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_context/dq_context.html#//apple_ref/doc/uid/TP30001066-CH203-BCIBHHBB
请注意,每像素32位(bpp)是每像素4个字节,您可以使用它来计算bytesPerRow
以上是大佬教程为你收集整理的ios – 在Swift中将UIImage转换为UInt8数组全部内容,希望文章能够帮你解决ios – 在Swift中将UIImage转换为UInt8数组所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。