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->getDat

本文介绍了如何在osg和Qt中进行图像处理,包括格式转换、保存图片的操作,详细阐述了QImage和osg::Image在存放顺序上的差异,以及如何处理图像大小和每行长度的问题,强调了避免手动计算,应使用内置函数获取图像信息的重要性。
osg、Qt的image&spm=1001.2101.3001.5002&articleId=106271827&d=1&t=3&u=0dcaf94e32a04ef2b9c0dc85f69299c5)
334

被折叠的 条评论
为什么被折叠?



