我得到一个图像,但我失去了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)相关推荐

  1. 你知道如何快捷地在Java中使用现有Excel数据创建PPT图表吗?

    Spire.Office for .NET是一套企业级的涵盖 E-iceblue 所有 .NET Office 组件的集合.使用 Spire.Office for .NET,开发人员可以创建大量的用于 ...

  2. Java Mp3转化WAV/PCM音频数据,解码详细解析,提取每一帧数据集合/比特流/播放,一行代码!

    导言 大家好!我是原子君 1.因为Java本身只支持,wav,缺少mp3的解码器,所以Java自带的无法对mp3进行处理,这种MPEG-*音频有损压缩标准编码,更不要说使用Java的音频格式和音频流就 ...

  3. Windows Java JavaFX IntelliJ IDEA 开发环境搭建 创建工程 编译运行 打包分发 自定义运行时

    博文目录 文章目录 本文说明 JavaFX 简单说明 JavaFX 版本说明 JavaFX 与 JDK 的关系 JavaFX 与 JDK Modular (JDK 9 模块化系统) JavaFX 模块 ...

  4. spark1.4加载mysql数据 创建Dataframe及join操作连接方法问题

    首先我们使用新的API方法连接mysql加载数据 创建DF import org.apache.spark.sql.DataFrame import org.apache.spark.{SparkCo ...

  5. java与c/c++之间的数据交互-----jni点滴

    2019独角兽企业重金招聘Python工程师标准>>> 淡泊明志.宁静致远 A Diamond is just a piece of Coal that did well under ...

  6. 关于在hdfs上对数据创建外部表的原因

    对hdfs 上原始数据创建 外部表,然后通过查询插入的方式创建一张内部表,这样相当于复制一份表数据,而原始的数据并没有改变,不会干涉同事使用原始数据. 转载于:https://www.cnblogs. ...

  7. 1.7 Java创建对象详解(显式创建和隐含创建)

    对象是对类的实例化.对象具有状态和行为,变量用来表明对象的状态,方法表明对象所具有的行为.Java 对象的生命周期包括创建.使用和清除,本文详细介绍对象的创建,在 Java 语言中创建对象分显式创建与 ...

  8. 没有终结点在侦听可以接受消息的_IoT Hub入门(3)使用消息路由将原始设备数据记录存档...

    本文主要分享一个案例: 10分钟使用消息路由将原始设备数据记录存档 本文主要有如下内容: 1.理解什么是消息路由,为什么要用消息路由 2.消息路由的类型 3.配置一个到Storage的消息路由,将原始 ...

  9. Spark _24 _读取JDBC中的数据创建DataFrame/DataSet(MySql为例)(三)

    两种方式创建DataSet 现在数据库中创建表不能给插入少量数据. javaapi: package SparkSql;import org.apache.spark.SparkConf; impor ...

最新文章

  1. 没了解过条件注解@ConditionalOn..?Spring Boot白学了!
  2. mysql如何插入新的字段_Mysql 如何 得到新插入的字段ID
  3. comsol移动网格_将动网格模型迁移到 5.3a
  4. tensorflow+python flask进行手写识别_使用tensorflow进行手写数字识别
  5. tf callbacks
  6. Luogu P2341 [HAOI2006]受欢迎的牛
  7. Openstack 一直在调度中解决
  8. 精通webpack的5大关键点
  9. tcp,udp报文最大长度
  10. 笔记本windows7设置WIFI教程(超详细)
  11. python集合类型一般应用的场景包括_Python学习,数据类型,python,篇
  12. Spring Boot 集成 Quartz
  13. Dubbo学习总结(9)——Apache Dubbo Roadmap 2019
  14. 算法列表-java实现
  15. linux系统根目录执行了chmod,根目录执行chmod -R 777 / 的补救方法
  16. 一些牛人的IOS博客,mark下慢慢学习
  17. Java代码格式化工具
  18. Meltdown Reading Kernel Memory from User Space
  19. 手把手教你架构3D引擎高级篇系列一
  20. MSP430编程器仿真器JTAG、SBW、BSL接口的区别

热门文章

  1. 手写Callable
  2. 动漫高清化画质增强(适合普通用户)
  3. 手机camera新篇章
  4. dell最新计算机如何U盘引导,戴尔latitude 3301怎么u盘启动 latitude 3301设置u盘启动方法...
  5. 语义分割Deeplabv3+论文解读
  6. springboot+mysql二手书交易平台-计算机毕业设计源码17782
  7. Linux——(3-vim and 用户权限 组)
  8. python用程序说爱你,抖音表白程序Python版,明人不说暗话,我喜欢你
  9. H7-TOOL迎来新版固件V2.09,WiFi压缩图传,FDCAN/Modbus助手波形打印上线,完善串口助手/RTT/Lua小程序,脱机烧增加新型号
  10. C语言/C++中字符串中英文字母大写转化成小写详细内容