我正在尝试创建一个8位灰度上下文,如下所示:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(
    data,m_width,m_height,8,colorSpace,kCGBitmapByteOrder32Little|kCGImageAlphaNone);

但是我有以下错误:

CGBitmapContextCreate: unsupported parameter combination: 
8 integer bits/component; 8 bits/pixel; 1-component color space; 
kCGImageAlphaNone; 1936 bytes/row.

为什么这种组合不受支持?

解决方法

每个组件支持的位数,每像素位数,颜色空间组合可在“ Quartz 2D Programming Guide”中找到

正如nikolai所写,使用kCGBitmapByteOrder32Little和kCGImageAlphaNone对灰色颜色空间没有意义(并且不受支持).

现在,根据每行和每个高度的字节数,您需要在数据参数中为CGBitmapContextCreate提供足够的已分配内存.您没有显示设置高度的代码并为数据分配内存,但我猜您的问题就在那里.

此外,您实际上并不需要自己分配内存(从iOS 4.0开始),根据CGBitmapContextCreate文档,您可以传递NULL作为数据以分配给您的内存.您仍然可以通过使用CGBitmapContextGetData请求它来访问数据指针.

另一个注意事项是将m_width作为bytesPerRow传递仅在这种情况下是正确的(灰色颜色空间,每个像素1个字节),但可能不是很好的做法.如果为数据传递NULL,也可以在此处传递0以自动为其计算.

ios – CGBitmapContextCreate:不支持的参数组合的更多相关文章

  1. ios – CGBitmapContextCreate:不支持的参数组合

    我正在尝试创建一个8位灰度上下文,如下所示:但是我有以下错误:为什么这种组合不受支持?

  2. Swift4语法新特性

    Swift4语法新特性随着iPhoneX的来到,iOS11的发布,Swift语言也更新到了第4个版本。

  3. CentOS6 脚本自动安装redis sentinel

    脚本自动安装redissentinel(在同一台服务器上)redis-sentinel启动脚本redis.conf配置文件sentinel.conf配置文件参考链接:http://www.cnblogs.com/zhoujinyi/p/6430116.html

  4. Centos Linux下查看服务器信息的方法

    CentosLinux下查看服务器信息的方法经常有客户咨询云志互联查看服务器一些硬件配置的方法,下面将以Centos为例,将各种信息的查看方法与用户分享。即delta/sw/s:每秒完成的写I/O设备次数。是rsect/s的一半,因为每扇区大小为512字节。

  5. windows-server-2008-r2 – Windows任务计划程序 – 结果代码0xC000005

    我在Windows任务计划程序中创建了Task,它每天上午9:00运行.我将其配置为使用SYstem帐户运行,并运行是否记录用户.我100%肯定,该操作指向正确的文件,所有参数都是正确的.为什么我仍然收到不好的结果?

  6. centos服务器下对mysql的优化

    在重新启动的MysqL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快。考虑持久连接,而不是多个连接,以减少开销。基准查询,包括使用服务器上的负载,有时一个简单的查询可以影响其他查询。在开发环境中产生的镜像数据中测试的所有可疑的查询。

  7. 关于CentOS 6下Hadoop占用系统态CPU高的处理办法

    一次不经意发现Hadoop的系统态cpu使用率很高,然后百度一下居然是个已知问题。而Hadoop是个高密集型内存运算系统,这个改动似乎给它带来了副作用。理论上运算型Java程序应该更多的使用用户态cpu才对,Cloudera官方也推荐关闭THP。于是参考一些文章作了调整:作用非常明显:效果很明显,大概12:05分的时候操作的,系统态占用基本消失了。文件Cache使用上升、机器负载下降。

  8. CentOS6上最小安装的虚拟机上安装MySQL 5.6.32

    no-auto-rehash[MysqLd]user=MysqLport=3306socket=/var/lib/MysqL/MysqL.sockbasedir=/usrdatadir=/var/lib/MysqLopen_files_limit=10240back_log=600#在MysqL暂时停止响应新请求之前,短时间内的多少个请求可以被存在堆栈中。max_connections=3000#MysqL允许最大的进程连接数,如果经常出现TooManyConnections的错误提示,则需要增大此值。默

  9. CentOS7.2最小安装的虚拟机上安装MySQL 5.6.32

    首先配置NTP,同步时间,以免时间出错。查询出这个包:#rpm-qa|grepmari*mariadb-libs-5.5.50-1.el7_2.x86_64卸载这个包:#yumremove-ymariadb-libs-5.5.50-1.el7_2.x86_64再一次重新安装:#rpm-ivhMysqL-server-5.6.32-1.linux_glibc2.5.x86_64.rpm#rpm-ivhMysqL-client-5.6.32-1.linux_glibc2.5.x86_64.rpm安装成功。My

  10. CentOS内核参数优化参考

    所谓Linux服务器内核参数优化,主要是指在Linux系统中针对业务服务应用而进行的系统内核参数调整,优化并无一定的标准。下面以生产环境下Linux常见的内核优化为例进行讲解,仅供参考。tcp_synack_retries51对于远端的连接请求SYN,内核会发送SYN+ACK数据报,以确认收到上一个SYN连接请求包。tcp_keepalive_intvl7515探测消息未获得响应时,重发该消息的间隔时间(秒)。tcp_max_tw_buckets18000036000系统在同时所处理的最大timewait

随机推荐

  1. iOS实现拖拽View跟随手指浮动效果

    这篇文章主要为大家详细介绍了iOS实现拖拽View跟随手指浮动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  2. iOS – genstrings:无法连接到输出目录en.lproj

    使用我桌面上的项目文件夹,我启动终端输入:cd然后将我的项目文件夹拖到终端,它给了我路径.然后我将这行代码粘贴到终端中找.-name*.m|xargsgenstrings-oen.lproj我在终端中收到此错误消息:genstrings:无法连接到输出目录en.lproj它多次打印这行,然后说我的项目是一个目录的路径?没有.strings文件.对我做错了什么的想法?

  3. iOS 7 UIButtonBarItem图像没有色调

    如何确保按钮图标采用全局色调?解决方法只是想将其转换为根注释,以便为“回答”复选标记提供更好的上下文,并提供更好的格式.我能想出这个!

  4. ios – 在自定义相机层的AVFoundation中自动对焦和自动曝光

    为AVFoundation定制图层相机创建精确的自动对焦和曝光的最佳方法是什么?

  5. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  6. ios – 在没有iPhone6s或更新的情况下测试ARKit

    我在决定下载Xcode9之前.我想玩新的框架–ARKit.我知道要用ARKit运行app我需要一个带有A9芯片或更新版本的设备.不幸的是我有一个较旧的.我的问题是已经下载了新Xcode的人.在我的情况下有可能运行ARKit应用程序吗?那个或其他任何模拟器?任何想法或我将不得不购买新设备?解决方法任何iOS11设备都可以使用ARKit,但是具有高质量AR体验的全球跟踪功能需要使用A9或更高版本处理器的设备.使用iOS11测试版更新您的设备是必要的.

  7. 将iOS应用移植到Android

    我们制作了一个具有2000个目标c类的退出大型iOS应用程序.我想知道有一个最佳实践指南将其移植到Android?此外,由于我们的应用程序大量使用UINavigation和UIView控制器,我想知道在Android上有类似的模型和实现.谢谢到目前为止,guenter解决方法老实说,我认为你正在计划的只是制作难以维护的糟糕代码.我意识到这听起来像很多工作,但从长远来看它会更容易,我只是将应用程序的概念“移植”到android并从头开始编写.

  8. ios – 在Swift中覆盖Objective C类方法

    我是Swift的初学者,我正在尝试在Swift项目中使用JSONModel.我想从JSONModel覆盖方法keyMapper,但我没有找到如何覆盖模型类中的Objective-C类方法.该方法的签名是:我怎样才能做到这一点?解决方法您可以像覆盖实例方法一样执行此操作,但使用class关键字除外:

  9. ios – 在WKWebView中获取链接URL

    我想在WKWebView中获取tapped链接的url.链接采用自定义格式,可触发应用中的某些操作.例如HTTP://我的网站/帮助#深层链接对讲.我这样使用KVO:这在第一次点击链接时效果很好.但是,如果我连续两次点击相同的链接,它将不报告链接点击.是否有解决方法来解决这个问题,以便我可以检测每个点击并获取链接?任何关于这个的指针都会很棒!解决方法像这样更改addobserver在observeValue函数中,您可以获得两个值

  10. ios – 在Swift的UIView中找到UILabel

    我正在尝试在我的UIViewControllers的超级视图中找到我的UILabels.这是我的代码:这是在Objective-C中推荐的方式,但是在Swift中我只得到UIViews和CALayer.我肯定在提供给这个方法的视图中有UILabel.我错过了什么?我的UIViewController中的调用:解决方法使用函数式编程概念可以更轻松地实现这一目标.

返回
顶部