• 10360阅读
  • 13回复

qt下用opengl显示png透明图片有拉伸 [复制链接]

上一主题 下一主题
离线千古来客
 

只看楼主 倒序阅读 楼主  发表于: 2014-01-11
关键词: openglpng
我在qt下用opengl贴图,其他格式如jpg、bmp等都能正常显示,但是贴png格式图片的时候会有拉伸,开启混合也没有达到想要的效果,请遇到过相同问题的朋友帮忙看下,如果有相关源码就更好了
思路来去如风
离线彩阳

只看该作者 1楼 发表于: 2014-01-12
有对比图就好说明问题了,你说是吧?
上海Qt开发联盟,热忱地欢迎你的加入!
离线千古来客

只看该作者 2楼 发表于: 2014-01-13
谢谢楼上提醒
思路来去如风
离线千古来客

只看该作者 3楼 发表于: 2014-01-13
上面的一张图是贴图后的效果,蓝边是我截图所致,没有影响。白色的部分是应该透明的部分,并没有透明,彩色的部分由拉伸。第二张图是原图
思路来去如风
离线wussi

只看该作者 4楼 发表于: 2014-01-13
同求姐
离线彩阳

只看该作者 5楼 发表于: 2014-01-13
你是如何使用OpenGL贴图的?使用的是纹理吗?还是开启的混合模式失效了?
上海Qt开发联盟,热忱地欢迎你的加入!
离线千古来客

只看该作者 6楼 发表于: 2014-01-14
回 5楼(彩阳) 的帖子
是 opengl纹理贴图,开启混合了,    glEnable( GL_BLEND );
   glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
我觉得可能是我程序的其他地方不知道哪里错了,但是不知道哪里
思路来去如风
离线彩阳

只看该作者 7楼 发表于: 2014-01-14
看了一下,是图片的问题。可能是这样的图片容易导致出现图形边缘像素扩散的现象。这可能是png图片压缩解压的问题了。如果将图片稍作修改就不会出现这样的问题了。
上海Qt开发联盟,热忱地欢迎你的加入!
离线千古来客

只看该作者 8楼 发表于: 2014-01-15
回 7楼(彩阳) 的帖子
应该不是图片的问题。我上次在一个群里问过别人,别人就能运行处正常的贴图。只不过他用的是别人封装好的库,所以没能告诉我具体的实现和究竟哪里出错,请问你用这张图片试验贴图了吗?也失败了?
思路来去如风
离线彩阳

只看该作者 9楼 发表于: 2014-01-16
回 8楼(千古来客) 的帖子
对此png解码的时候出错了。要不然我将这张图片添加了一条直线就不会出现问题了。
使用photoshop修改的图片经测,没有问题。
这里 是我使用的测试代码。
上海Qt开发联盟,热忱地欢迎你的加入!
离线千古来客

只看该作者 10楼 发表于: 2014-01-17
回 9楼(彩阳) 的帖子
谢谢你提供的源码,请问你是怎么用ps修改的图片?我试了下你那个例子的图片在我开始写的程序上,也是能正常显示的。而我又随便从网络上找几张png图片(就是背景是透明的,如果图片不是很规则的矩形,就会出现拉伸),这种图片不论在你提供的例子上还是我自己的都还是不能正常显示。。图片如下,,这是我从网络找的图片,下面能正常显示,上面边缘会有拉伸
思路来去如风
离线彩阳

只看该作者 11楼 发表于: 2014-01-17
可以多作些修改,PS中新建一图片,然后复制原图片的象素,再粘贴。你也可以试试保存为32位深度的TGA文件格式,但是需要在imageformats文件夹中弄一个qtga.dll插件来。
上海Qt开发联盟,热忱地欢迎你的加入!
离线千古来客

只看该作者 12楼 发表于: 2014-01-20
你好,我按照你说的方法用ps重新建了一张新图,但是现实的结果还是和之前是一样 的,有没有可能是ps的版本是不一样的?附件部分是我的显示图片的部分源码,麻烦你帮忙看下有没有问题,谢谢!源码 opengl_png.rar (4298 K) 下载次数:22 源码 opengl_png.rar (4298 K) 下载次数:22
思路来去如风
离线千古来客

只看该作者 13楼 发表于: 2014-01-24
问题已经被我找到了
思路来去如风
快速回复
限100 字节
 
上一个 下一个