图形绘制 CGDataProviderCreatWithData第二个参数

[复制链接]
256 2
先上代码

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, pixels, bytesPerRow * height, nil)
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中是一个什么样的形式,这个问题已经让我焦头烂额了,在这广求各路大神指点一下。

举报 使用道具

回复

2 个评论

Olefgovvat  新手上路  发表于 2019-2-9 18:47:50  | 显示全部楼层
先上代码

    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, pixels, bytesPerRow * height, nil)
        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中是一个什么样的形式,这个问题已经让我焦头烂额了,在这广求各路大神指点一下。

举报 使用道具

回复
XaloisWah  新手上路  发表于 2019-2-9 18:56:45  | 显示全部楼层
帮顶

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

ios.irunthink.com
搜索
热搜: iOS swift 下拉刷新

图文热点

更多

开发教程

更多

客服中心

400-800 周一至周日 9:30-17:30 仅收市话费

关注我们

  • 微信扫描
  • 关注微信
关于我们
关于我们
友情链接
联系我们
帮助中心
精贴推荐
源码上传
注册登录
服务支持
资源下载
关注我们
官方微博
官方空间
快速回复 返回顶部 返回列表