iOS 取得CGimage字节数据的方法
通过我在网上搜索和总结,目前看来,我发现两种比较方便的方式。
1. CGImage -> CGDataProvider -> CFData -> xx *
CGDataProviderRef provider =CGImageGetDataProvider(CGImage);
void*data =(void*)CFDataGetBytePtr(CGDataProviderCopyData(provider));
这样得到的就是void*类型的数据.
2. CGImage -> CGContext -> void *
int sWidth=CGImageGetWidth(CGImage);
int sHeight=CGImageGetHeight(CGImage);
CGImageRef mContent =CGImage;
CGContextRef context =CGBitmapContextCreate(NULL,CGImageGetWidth(mContent),CGImageGetHeight(mContent),
CGImageGetBitsPerComponent(mContent),CGImageGetBytesPerRow(mContent),
CGImageGetColorSpace(mContent),CGImageGetBitmapInfo(mContent));
CGContextDrawImage(context,CGRectMake(,, sWidth, sHeight), mContent);
void*data=CGBitmapContextGetData(context);
当得到CGimage的字节数据,有时又需要把它转化成UIImage.
void*data;
CGDataProviderRef pv=CGDataProviderCreateWithData(data, data, sWidth*sHeight*,ContentReleaseCallBack);
CGImageRef content=CGImageCreate(sWidth , sHeight,,,*sWidth,
CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrder32Big | kCGImageAlphaNoneSkipLast,
pv, NULL,true, kCGRenderingIntentDefault);
UIImage*ci =[UIImage imageWithCGImage:content];
以上一套方法,能正常显示图像,只是在alpha的值上和原图有些不一样转成字节数据再转换成UIImage以后,原本是透明的部分变成了黑色
UIImage *ci = [UIImage imageWithData:[NSData dataWithBytes:data length:sWidth*sHeight*]];
iOS 取得CGimage字节数据的方法的更多相关文章
- iOS中常用的四种数据持久化方法简介
iOS中常用的四种数据持久化方法简介 iOS中的数据持久化方式,基本上有以下四种:属性列表.对象归档.SQLite3和Core Data 1.属性列表涉及到的主要类:NSUserDefaults,一般 ...
- 最全的iOS数据存储方法
目的 项目准备运用的Core Data进行本地数据存储,本来打算只写一下Core Data的,不过既然说到了数据存储,干脆来个数据存储基础大总结!本文将对以下几个模块进行叙述. 沙盒 Plist Pr ...
- iOS常见的几种加密方法(base64.MD5.Token传值.系统指纹验证。。加密)
普通加密方法是讲密码进行加密后保存到用户偏好设置中 钥匙串是以明文形式保存,但是不知道存放的具体位置 一. base64加密 base64 编码是现代密码学的基础 基本原理: 原本是 8个bit 一组 ...
- 使用多字节字符集的跨平台(PC、Android、IOS、WP)编码/解码方法
随着移动端的发展,跨平台已成为通讯架构设计的重要考虑因素,PC.Android.IOS.WP等跨多平台间的数据通讯,必然要解决字符编码/解码的问题. 多字节字符集MBCS不是跨平台的首选字符集,面向跨 ...
- java——获取从控制台输入的数据的方法
一.使用标准输入串System.in System.in.read(); //一次只读入一个字节数据,但是我们往往希望获得的是一个字符串或者一组数字 二.使用Scanner获得一个字符串或一组 ...
- iOS开发网络篇—数据缓存
iOS开发网络篇—数据缓存 一.关于同一个URL的多次请求 有时候,对同一个URL请求多次,返回的数据可能都是一样的,比如服务器上的某张图片,无论下载多少次,返回的数据都是一样的. 上面的情况会造 ...
- iOS开发 GET、POST请求方法(NSURLSession篇)
NSURLConnection,在iOS9被宣布弃用,本文不使用NSURLConnection进行网络编程,有兴趣的童鞋可以参考: [iOS开发 GET.POST请求方法(NSURLConnectio ...
- iOS开发 GET、POST请求方法(NSURLConnection篇)
Web Service使用的主要协议是HTTP协议,即超文本传输协议. HTTP/1.1协议共定义了8种请求方法(OPTIONS.HEAD.GET.POST.PUT.DELETE.TRACE.CONN ...
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法。。
[原创] RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法. 1.单个NAL包单元 12字节 ...
随机推荐
- hdoj 1061 Rightmost Digit【快速幂求模】
Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- Python学习总结 06 paramiko 远程执行命令
有时会需要在远程的机器上执行一个命令,并获得其返回结果.对于这种情况,python 可以很容易的实现. 1 工具 Python paramiko 1) Paramiko模块安装 在Linux的Term ...
- baidu
[百度凤巢业务实习] 查看打赏情况 打赏100shb 打赏1000shb 打赏10000shb 只看此用户 大字体 楼主 百度凤巢业务--百度最核心的业务做数据挖掘,机器学习,广告算法等,主要 ...
- array_column php 函数 自定义版本 php_version<5.5
<?php if(!function_exists('array_column')) { /* * array_column() for PHP 5.4 and lower versions * ...
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- php判断http头还是https头
$http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HT ...
- [转] json in javascript
JavaScript is a general purpose programming language that was introduced as the page scripting langu ...
- iOS原生CIFilter创建二维码
iOS原生CIFilter创建二维码 2016-05-31 未来C iOS原生CIFilter创建二维码 关于二维码生成,网上也是有很多,很早以前的第三方库大多数都是通过C++写,也是有的如zxing ...
- HDU 5592 ZYB's Premutation(树状数组+二分)
题意:给一个排列的每个前缀区间的逆序对数,让还原 原序列. 思路:考虑逆序对的意思,对于k = f[i] - f[i -1],就表示在第i个位置前面有k个比当前位置大的数,那么也就是:除了i后面的数字 ...
- 判断浏览器是否支持FileReader
1.js代码: //判断浏览器是否支持FileReader if (typeof FileReader == "undefined") { document.write(" ...