编译Cximage生成对应的Debug与Release版本,网上教程很多,不明白请留言。

这里需要GetBits()函数获得每一行图像数据的首像素的指针,不得不再次提醒的是,图像数据是从下到上,从左到右的方式扫描的。然后用GetEffWidth()函数获得图像的每行的stride长度,用来申请内存空间,注意:对于32位RGBA图像的储存方式,这个函数只是获得的RGB内存块的宽度,下面会详细介绍。同样的除了GetBits()这个函数可以获得图像数据指针之外,还有GetDIB()函数来直接获得图像数据指针。注意:图像数据指针指向左下角像素位置,所以图像数据是上下颠倒的。

首先

首先创建CxImage类对象读取图像,判断为真进入循环。

CxImage image;

image.Load(strFilePath,0);

if (image.IsValid())

{

int width = image.GetWidth();

int height = image.GetHeight();//获得宽高基本尺寸

int ColorType = image.GetColorType();//1 = indexed, 2 = RGB, 4 = RGBA, 获得颜色模型

int BytePerLine = image.GetEffWidth();

//(bitCount*width + 3)/ 4* 4;//4字节对齐

//int BytePerLine =((((image.GetBpp() * width) + 31) / 32) * 4);

/*两个宽度,一个是图像的宽度,例如201。另一个宽度是你的数据矩阵的宽 度,BytePerLine。这个值根据你的图像而定,如果你的图像是24位真彩, 201*3=603,这个数据不能被4整除,必须强制其等于604,这样你的数据矩阵 就是604*height。显示时的宽度还是你的201不变*/

BYTE* pDib = image.GetBits();

BYTE* buffer = new BYTE[height*BytePerLine];

for (int j = 0; j < height; j++)

{

for (int i = 0; i < width; i++)

{

buffer[j*BytePerLine+i*3] = *(pDib+(height-1- j)

*BytePerLine + i*3);

buffer[j*BytePerLine+i*3+1] = *(pDib+(height-1-j)

*BytePerLine + i*3+1);

buffer[j*BytePerLine+i*3+2] = *(pDib+(height-1-j)

*BytePerLine + i*3+2);

}

}

delete[] buffer;

}

或者直接用GetDIB()函数。

CxImage image;

image.Load(strFilePath,0);

if (image.IsValid())

{

int width = image.GetWidth();

int height = image.GetHeight();

int ColorType = image.GetColorType();

int BytePerLine = image.GetEffWidth();

BYTE* pDib = image.GetDIB();

BYTE* buffer = new BYTE[height*BytePerLine];

memset(buffer,0,height*BytePerLine);

memcpy(buffer,pdib,height*BytePerLine);

//特别注意:这里图像是倒像咬

}

delete[] buffer;

}

Cximage 库使用,直接读取图像数据到内存。相关推荐

  1. Kinect V1读取图像数据(For Windows)

    Kinect V1读取图像数据(For Windows) 这篇博客 Kinect V1介绍 数据读取的基本流程 运行代码和注释 结尾 这篇博客  刚好有一台现成的Kinect V1相机,所以就拿过来学 ...

  2. python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式

    本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...

  3. 【Android FFMPEG 开发】FFMPEG AVFrame 图像格式转换 YUV - RGBA ( 获取 SwsContext | 初始化图像数据存储内存 | 图像格式转换 )

    文章目录 I . FFMPEG AVFrame 图像数据帧处理 前置操作 II . FFMPEG 解码 AVPacket 数据到 AVFrame 流程 III. FFMPEG 解码前后的图像格式 IV ...

  4. OpenGLES读写图像数据(内存与GPU)——使用PBO

    一.什么是PBO 在 OpenGL 开发中,特别是在低端平台上处理高分辨率的图像时,图像数据在内存和显存之前拷贝往往会造成性能瓶颈,而利用 PBO 可以在一定程度上解决这个问题. PBO (Pixel ...

  5. python读取图像数据的一些方法

    工作和学习中设计一个神经网络中经常需要设计一个数据载入器.首先第一件事我们要根据我们的任务要求确定一个数据提供的方法.如我们是一个分类任务,我们就需要读取数据和数据本身对应的标签.     1    ...

  6. TensorFlow中读取图像数据的三种方式(转)

    附加一个链接关于DatasetAPI:https://zhuanlan.zhihu.com/p/30751039 本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和 ...

  7. MATLAB调用工业相机读取图像数据

    前言 项目中需要读出网口通信的工业相机的图像数据,此文主要是记个笔记. 参考链接 1.在Windows上使用MATLAB Image Acquisition Toolbox 2.调用相机程序 3.ma ...

  8. opencv从内存缓冲区中读取图像数据

    1.从内存中加载图像数据 s_Image_Info stDispImgInfo = spImgInfo->m_stDispInfo; //cv::_InputArray pic_arr(stDi ...

  9. C++_缓存相机图像数据到内存

    相机原始输出的图像数据是Byer格式,可以塞进内存中的图像数组 unsigned char* imgData[150] ;//创建图像数据数组//初始化时申请缓存150张图像的内存空间 for (in ...

  10. Python 分通道读取图像数据,取经之路第 4 天

    今天是持续写作的第 36 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 今天这 1 个小时,继续给大家打来 Python 读取图片这一简单的操作. 读取单通道 使用 OpenCV ...

最新文章

  1. LSM 优化系列(四) -- Rocksdb和Lethe 对Delete问题的优化
  2. Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化
  3. 如何查看经过iOS优化的PNG图片
  4. java学习记录--ThreadLocal使用案例
  5. 蓝桥杯java第八届第二题--纸牌三角形
  6. 需求分析阶段各种图的功能
  7. 枚举类型 实现一个enumeration对于类的加工的函数
  8. 如何避免文件被删无法找回的尴尬?
  9. redis---中文文档
  10. python内存地址替换原理(20秒读懂)
  11. JavaScript 开闭原则OCP
  12. c 获取char*的长度_C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏!...
  13. 利用classloader同一个项目中加载另一个同名的类_你知道 Java 类是如何被加载的吗?...
  14. 求大佬解决0x00881340 处有未经处理的异常(在 ConsoleApplication1.exe 中): 0xC0000005: 写入位置 0x00993B8C 时发生访问冲突。
  15. java storedmap_SCJP模拟题
  16. Gilbreath原理中的数学与魔术(一)——Gilbreath Shuffle First Principle
  17. 计算机基础a3知识点,《计算机应用基础》期末试卷A(A3版).doc
  18. 网络训练时使用不同学习率策略(Poly)以及学习率是如何计算
  19. 云和恩墨大讲堂 | 基于PCIE 闪存卡的 Oracle 数据库使用
  20. 今天教你5种爆款标题,自媒体短视频标题写得好,月入过万少不了

热门文章

  1. 日撸 Java 三百行(71-80天,BP 神经网络)
  2. Javashop电商系统7.0发布
  3. Cadence Gerber文件制作过程
  4. 武汉CMMI3-CMMI5三年到期后复审指南
  5. MediaCreationTool2004 U盘安装系统
  6. Xposed框架安装失败
  7. Win10操作系统下,如何打开DOS窗口(图文教程)
  8. nodejs利用tinyPNG的API批量压缩图像文件
  9. android屏幕漂移,手机屏幕不受控制乱跳 触屏“飘逸”的解决方法
  10. 软件体系结构期末复习总结