1、格式转换

osg::Image* CommonTools::covertImage(QImage image)
{QImage glImage = QGLWidget::convertToGLFormat(image);unsigned char* data = new unsigned char[glImage.byteCount()];for (int i = 0; i < glImage.byteCount(); i++){data[i] = glImage.bits()[i];}osg::Image *markerImage = new osg::Image();markerImage->setImage(glImage.width(),glImage.height(),   1,4,GL_RGBA,GL_UNSIGNED_BYTE,data,osg::Image::USE_NEW_DELETE,1);return markerImage;
}

2、保存图片

QImage直接调用save即可

osg::Image需要做如下操作

osg::ref_ptr<osg::Texture2D> texture2d = new osg::Texture2D;
osg::ref_ptr<osg::Image> img = new osg::Image;
img=osgDB::readImageFile("C:\\Users\\Public\\Pictures\\Sample Pictures\\Tulips.jpg");
osg::ref_ptr<osg::Image> img2 = new osg::Image;
img2->setImage(img->s(),img->t(),img->r(),img->getInternalTextureFormat(),img->getPixelFormat(),img->getDataType(),img->data(),img->getAllocationMode());
osgDB::writeImageFile(*img2,"img2.jpg");
osgDB::writeImageFile(*img,"abc.jpg");
texture2d->setImage(img);

3、存放顺序

QImage::Format_ARGB32、QImage::Format_RGB32,存入格式为B,G,R,A 对应 0,1,2,3

QImage::Format_RGB888,存入格式为R, G, B 对应 0,1,2

QImage::fill(qRgba(0,255,0,255))顺序为RGBA

osg::Image为R、G、B、A,注意data(i,j),i表示列,j表示行

4、图像大小

QImage对于不是32的图像,其大小和每行的长度和一般的认识不同,为了避免操作失误,用其函数来获取图像大小和每行长度,不要自行计算。

int byteCount=image1.byteCount();
int byteLine=image1.bytesPerLine();

osg学习(三十一)osg、Qt的image相关推荐

  1. osg学习(十一)osg与osgre

    OGRE和OSG本身被定位为一个纯粹的图形引擎. 其中OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API).OSG开发的主要意义在于,将3D ...

  2. Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?

    ThreadLocal 是不是用来解决共享资源的多线程访问的. 这是一个常见的面试问题,如果被问到了 ThreadLocal,则有可能在你介绍完它的作用.注意点等内容之后,再问你:ThreadLoca ...

  3. ballerina 学习 三十一 扩展开发(二)

    上篇说了使用ballerina 语言开发扩展模块,对于注解类型的我们是需要使用java 语言进行 开发的 官方提供了一个hello 的demo可以参考 https://github.com/balle ...

  4. OSG三维渲染引擎编程学习(全系列开展OSG学习)

    目录 第一章:OpenSceneGraph介绍 第二章:OSG数学基础 第三章:OSG场景组织 第四章:OSG几何体绘制 第五章:OSG场景渲染 第六章:OSG场景工作机制 第七章:OSG场景图形交互 ...

  5. OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己

    OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...

  6. OSG 之学习五:OSG 漫游

    文章目录 说明 1. 操作器 2. 碰撞检测 3. 漫游实例 4. 制作路径漫游 5. 在 MFC 中编辑路径 6. 一些类参考,自行看之 说明 OSG 入门看的,大佬绕道 示例来源于<OSG程 ...

  7. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)

    QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...

  8. osg学习笔记(一)

    场景图形采用一种自顶向下的,分层的树状数据结构来组织空间数据集,以提高渲染的效率 场景图形树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息.根节点 ...

  9. JavaScript学习(三十一)—在输入框中如何判断输入的是一个正确的网址

    JavaScript学习(三十一)-在输入框中如何判断输入的是一个正确的网址 function isUrl(url) {const a = document.createElement("a ...

最新文章

  1. Java虚拟机类加载机制
  2. DataGrid鼠标事件处理
  3. 使用python函数计算3.5四舍五入的结果_python 数字的四舍五入-Go语言中文社区
  4. 最完整代码的用php备份mysql数据库
  5. java 时间的封装类
  6. html实现带有数字的列表,纯CSS实现雨滴形状的数字序号列表
  7. pytorch bceloss测试
  8. SaltStack 安装、简单配置和远程执行
  9. 过去10年技术人员有哪些状态改变?
  10. 语言编写正反星星_厉害!浙理工师生原创短片《星星》入围5个国际电影节
  11. 网页排版规则:你需要知道的
  12. JSK-372 图案输出【入门】
  13. Linux有待提高的七个领域
  14. 英语学术论文写作概述
  15. 物联网之智能家居系统设计和实现
  16. 智慧物流自动化智能仓储管理架构分析
  17. c语言 谭浩强第五版第五章习题第17题 乒乓球比赛
  18. 你因为拖延症,错过了什么?
  19. 果然是WIFI引起局域网速度慢
  20. DoIP专栏 - DoIP协议组成

热门文章

  1. php+中文分词scws+sphinx+mysql打造千万级数据全文搜索
  2. 优信二手车与时俱进,缔造创新发展典范
  3. 计算机技术在注射模中的应用,CAD/CAM技术在注射模具设计,制造中的应用.pdf
  4. 办公族的正确呼吸方式
  5. SkyWalking简介和安装
  6. fastapi获取访客真实ip
  7. pc usb充电测试软件,充电宝都是大骗子?炬为USB测试工具组合,让你马上一清二楚...
  8. Mathematica 13.0.1 Linux版安装教程
  9. js实现移动端电子签名
  10. 有道云笔记markdown语法整理