osg学习(三十一)osg、Qt的image
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相关推荐
- osg学习(十一)osg与osgre
OGRE和OSG本身被定位为一个纯粹的图形引擎. 其中OpenSceneGraph(简称OSG)使用OpenGL技术开发,是一套基于C++平台的应用程序接口(API).OSG开发的主要意义在于,将3D ...
- Java多线程学习三十一:ThreadLocal 是用来解决共享资源的多线程访问的问题吗?
ThreadLocal 是不是用来解决共享资源的多线程访问的. 这是一个常见的面试问题,如果被问到了 ThreadLocal,则有可能在你介绍完它的作用.注意点等内容之后,再问你:ThreadLoca ...
- ballerina 学习 三十一 扩展开发(二)
上篇说了使用ballerina 语言开发扩展模块,对于注解类型的我们是需要使用java 语言进行 开发的 官方提供了一个hello 的demo可以参考 https://github.com/balle ...
- OSG三维渲染引擎编程学习(全系列开展OSG学习)
目录 第一章:OpenSceneGraph介绍 第二章:OSG数学基础 第三章:OSG场景组织 第四章:OSG几何体绘制 第五章:OSG场景渲染 第六章:OSG场景工作机制 第七章:OSG场景图形交互 ...
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)--让demo在他人电脑跑起来 这一节的内容感觉比较土鳖.这从来就是一个老生常谈的问题.学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那 ...
- OSG 之学习五:OSG 漫游
文章目录 说明 1. 操作器 2. 碰撞检测 3. 漫游实例 4. 制作路径漫游 5. 在 MFC 中编辑路径 6. 一些类参考,自行看之 说明 OSG 入门看的,大佬绕道 示例来源于<OSG程 ...
- QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)
QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64) 1.编译方式介绍: 2.动态编译方式打包发布QT程序: 方法一:手动复制 方法二:使用工具 问题& ...
- osg学习笔记(一)
场景图形采用一种自顶向下的,分层的树状数据结构来组织空间数据集,以提高渲染的效率 场景图形树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息.根节点 ...
- JavaScript学习(三十一)—在输入框中如何判断输入的是一个正确的网址
JavaScript学习(三十一)-在输入框中如何判断输入的是一个正确的网址 function isUrl(url) {const a = document.createElement("a ...
最新文章
- Java虚拟机类加载机制
- DataGrid鼠标事件处理
- 使用python函数计算3.5四舍五入的结果_python 数字的四舍五入-Go语言中文社区
- 最完整代码的用php备份mysql数据库
- java 时间的封装类
- html实现带有数字的列表,纯CSS实现雨滴形状的数字序号列表
- pytorch bceloss测试
- SaltStack 安装、简单配置和远程执行
- 过去10年技术人员有哪些状态改变?
- 语言编写正反星星_厉害!浙理工师生原创短片《星星》入围5个国际电影节
- 网页排版规则:你需要知道的
- JSK-372 图案输出【入门】
- Linux有待提高的七个领域
- 英语学术论文写作概述
- 物联网之智能家居系统设计和实现
- 智慧物流自动化智能仓储管理架构分析
- c语言 谭浩强第五版第五章习题第17题 乒乓球比赛
- 你因为拖延症,错过了什么?
- 果然是WIFI引起局域网速度慢
- DoIP专栏 - DoIP协议组成
热门文章
- php+中文分词scws+sphinx+mysql打造千万级数据全文搜索
- 优信二手车与时俱进,缔造创新发展典范
- 计算机技术在注射模中的应用,CAD/CAM技术在注射模具设计,制造中的应用.pdf
- 办公族的正确呼吸方式
- SkyWalking简介和安装
- fastapi获取访客真实ip
- pc usb充电测试软件,充电宝都是大骗子?炬为USB测试工具组合,让你马上一清二楚...
- Mathematica 13.0.1 Linux版安装教程
- js实现移动端电子签名
- 有道云笔记markdown语法整理