osg学习(三十一)osg、Qt的image

本文介绍了如何在osg和Qt中进行图像处理,包括格式转换、保存图片的操作,详细阐述了QImage和osg::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->getDat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值