图形绘制 CGDataProviderCreateWithData中的第二个参数问题

vina成 2016-05-30 04:54:06
先上代码

func initImage() {
let width = 600
let height = 600
let bitsPerPixel = 32
let bitsPerComponent = 8
let bytesPerPixel = 4
let bytesPerRow = width * bytesPerPixel
let rgbColorSpace = CGColorSpaceCreateDeviceRGB()
let bitmapInfo: CGBitmapInfo = CGBitmapInfo.ByteOrderDefault
//getColors()
let provaiderRef = CGDataProviderCreateWithData(nil, [b]pixels, bytesPerRow * height, nil)[/b]
let cgim = CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, rgbColorSpace, bitmapInfo, provaiderRef, nil, false, CGColorRenderingIntent.RenderingIntentDefault)
self.realImage = UIImage.init(CGImage: cgim!)

在这里我是用原始的像素数据来绘制图形更新image,但是,输出的图形和预料的完全不一样。屏幕绘制出来的是红黑相间的竖型条纹,而本意是模拟沙粒平铺的颜色。测试之后怀疑是我的pixels数组中的数据有问题。pixels是我自定义的一个有序的保存RGBA数据的数组,里边的值是就是RGBA各分量的值。我不太清楚CGDataProviderCreateWithData这个函数的第二个参数在Swift中是一个什么样的形式,这个问题已经让我焦头烂额了,在这广求各路大神指点一下。
...全文
1368 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwxi_ 2017-12-24
  • 打赏
  • 举报
回复
let provider = CGDataProvider(dataInfo: nil, data: baseAddress!, size: bufferSize, releaseData: {_,_,_ in }) 我是这样子写的,是可以的,还有问题邮件我

1,420

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧