java argb_如何使用原始ARGB数据创建颜色位图(CGBitmapContextCreate)
我得到一个图像,但我失去了1个字节 . 我的结果图像:
我想使用argb raw (void*)data 创建color / rgba位图,我有它的宽度和高度 . 在后端(c)我有 decoded rgb to argb 使用以下方法,然后给 input as (void)pData* ,
void decode_rgb_to_argb(U8Data r, U8Data g, U8Data b, U32Data argb, u_int elements)
{
assert(argb);
assert(r);
assert(g);
assert(b);
assert(elements);
unsigned char*p=NULL;
for(u_int i=0;i
{
p=(unsigned char*)(argb+i);
*p=b[i];
p++;
*p=g[i];
p++;
*p=r[i];
p++;
*p=0;
}
}
pData = decode_rgb_to_argb;
//I am handling in ios
-(uiimage*) createBitmap:(void*)pData pWidth:(u_int)pWidth pHeight:(u_int)pHeight{
// Here i want to write ppm file using pData to check wether 4byte/3byte.
NSData* data = [NSData dataWithBytes:pData length:pWidth*pHeight];
char* myBuffer = (char*)pData;
char* rgba = (char*)malloc(pWidth*pHeight*4);
for(int i=0; i < pWidth*pHeight; i++) {
rgba[4*i] = myBuffer[3*i];
rgba[4*i+1] = myBuffer[3*i+1];
rgba[4*i+2] = myBuffer[3*i+2];
rgba[4*i+3] = 255; //or 0
}
size_t bitsPerComponent = 8;
size_t bytesPerRow = pWidth*4;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef bitmapContext = CGBitmapContextCreate(
// Here i have given my raw data(pData) and rgba buffer
(u_char*)pData,
pWidth,
pHeight,
bitsPerComponent,
bytesPerRow,
colorSpace,
//Here i have used kCGImageAlphaFirst because i am getting data as ARGB,but
//bitmap is not creating.If i use kCGImageAlphaNoneSkipLast, i am getting expected
//image but i'm loosing one byte(alpha).
kCGImageAlhaInfo
);
CFRelease(colorSpace);
CGImageRef cgImage = CGBitmapContextCreateImage(bitmapContext);
UIImage *result = [[[UIImage imageWithCGImage:cgImage] retain] autorelease];
CGColorSpaceRelease(colorSpace);
CGImageRelease(cgImage);
CGContextRelease(bitmapContext);
return result;
}
如何编写ppm文件,如何从原始 (void*)Pdata 创建位图到ios中的彩色图像?
java argb_如何使用原始ARGB数据创建颜色位图(CGBitmapContextCreate)相关推荐
- 你知道如何快捷地在Java中使用现有Excel数据创建PPT图表吗?
Spire.Office for .NET是一套企业级的涵盖 E-iceblue 所有 .NET Office 组件的集合.使用 Spire.Office for .NET,开发人员可以创建大量的用于 ...
- Java Mp3转化WAV/PCM音频数据,解码详细解析,提取每一帧数据集合/比特流/播放,一行代码!
导言 大家好!我是原子君 1.因为Java本身只支持,wav,缺少mp3的解码器,所以Java自带的无法对mp3进行处理,这种MPEG-*音频有损压缩标准编码,更不要说使用Java的音频格式和音频流就 ...
- Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时
博文目录 文章目录 本文说明 JavaFX 简单说明 JavaFX 版本说明 JavaFX 与 JDK 的关系 JavaFX 与 JDK Modular (JDK 9 模块化系统) JavaFX 模块 ...
- spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题
首先我们使用新的API方法连接mysql加载数据 创建DF import org.apache.spark.sql.DataFrame import org.apache.spark.{SparkCo ...
- java与c/c++之间的数据交互-----jni点滴
2019独角兽企业重金招聘Python工程师标准>>> 淡泊明志.宁静致远 A Diamond is just a piece of Coal that did well under ...
- 关于在hdfs上对数据创建外部表的原因
对hdfs 上原始数据创建 外部表,然后通过查询插入的方式创建一张内部表,这样相当于复制一份表数据,而原始的数据并没有改变,不会干涉同事使用原始数据. 转载于:https://www.cnblogs. ...
- 1.7 Java创建对象详解(显式创建和隐含创建)
对象是对类的实例化.对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为.Java 对象的生命周期包括创建.使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与 ...
- 没有终结点在侦听可以接受消息的_IoT Hub入门(3)使用消息路由将原始设备数据记录存档...
本文主要分享一个案例: 10分钟使用消息路由将原始设备数据记录存档 本文主要有如下内容: 1.理解什么是消息路由,为什么要用消息路由 2.消息路由的类型 3.配置一个到Storage的消息路由,将原始 ...
- Spark _24 _读取JDBC中的数据创建DataFrame/DataSet(MySql为例)(三)
两种方式创建DataSet 现在数据库中创建表不能给插入少量数据. javaapi: package SparkSql;import org.apache.spark.SparkConf; impor ...
最新文章
- 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
- mysql如何插入新的字段_Mysql 如何 得到新插入的字段ID
- comsol移动网格_将动网格模型迁移到 5.3a
- tensorflow+python flask进行手写识别_使用tensorflow进行手写数字识别
- tf callbacks
- Luogu P2341 [HAOI2006]受欢迎的牛
- Openstack 一直在调度中解决
- 精通webpack的5大关键点
- tcp,udp报文最大长度
- 笔记本windows7设置WIFI教程(超详细)
- python集合类型一般应用的场景包括_Python学习,数据类型,python,篇
- Spring Boot 集成 Quartz
- Dubbo学习总结(9)——Apache Dubbo Roadmap 2019
- 算法列表-java实现
- linux系统根目录执行了chmod,根目录执行chmod -R 777 / 的补救方法
- 一些牛人的IOS博客,mark下慢慢学习
- Java代码格式化工具
- Meltdown Reading Kernel Memory from User Space
- 手把手教你架构3D引擎高级篇系列一
- MSP430编程器仿真器JTAG、SBW、BSL接口的区别
热门文章
- 手写Callable
- 动漫高清化画质增强(适合普通用户)
- 手机camera新篇章
- dell最新计算机如何U盘引导,戴尔latitude 3301怎么u盘启动 latitude 3301设置u盘启动方法...
- 语义分割Deeplabv3+论文解读
- springboot+mysql二手书交易平台-计算机毕业设计源码17782
- Linux——(3-vim and 用户权限 组)
- python用程序说爱你,抖音表白程序Python版,明人不说暗话,我喜欢你
- H7-TOOL迎来新版固件V2.09,WiFi压缩图传,FDCAN/Modbus助手波形打印上线,完善串口助手/RTT/Lua小程序,脱机烧增加新型号
- C语言/C++中字符串中英文字母大写转化成小写详细内容