qt如何在label上显示jpg图片

依旧如风 2018-04-16 04:14:24
按下打开按钮,在文件夹中选择图片然后显示在label上,png图片可以显示,但是jpg的不行
附上代码
void menu::on_open_clicked()
{
filename = QFileDialog::getOpenFileName(this,"打开图片","C:/Users/Administrator/Pictures","Images(*.png *.bmp *.jpg)");
if(!filename.isEmpty())
{
QPixmap pix;
QImage image(filename);
ui->label_25->setPixmap(pix.fromImage(image));
}
}

按照网上的方法在EXE同级目录下建plugins\imageformats目录并在里面粘贴上qjpeg.dll,然而并没有用。
...全文
3416 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
依旧如风 2018-04-18
  • 打赏
  • 举报
回复
终于解决了问题,感谢各位网友热心帮助,我的原因是公司电脑加密了,打开过的文件加密了导致QT上无法显示,并不是qt的问题,我结帖了,谢谢各位。
依旧如风 2018-04-18
  • 打赏
  • 举报
回复
不行啊,要转换成png图片,我想法是先在代码中image.load,然后在image.save成png格式的,可是load加载失败,后面就无法操作了
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
我编辑网上下载的JPG图片,就是把图片缩小裁剪了一部分,然后另存为JPG格式图片副本,为啥就不能显示副本呢。。。。
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
我在网上下载了一张jpg格式图片,居然就显示了,然后我让他显示自己编辑过的jpg图片他就不显示 报这样的错误 Not a JPEG file: starts with 0x84 0x7d
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
现在可以显示jpg格式图片了,但是部分jpg的图片不能显示好烦啊
萧洛 2018-04-17
  • 打赏
  • 举报
回复
引用 9 楼 qq_32044759 的回复:
他会不会是连接不到qjpeg库,要在.pro加点什么
先确认imageformats文件夹中有没有qjpeg.dll、qjpegd.dll文件? 如果有,那应该是你安装的qt有问题。
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
他会不会是连接不到qjpeg库,要在.pro加点什么
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
bmp图片也显示不了
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
我这样做代码如下 void menu::on_open_clicked() { filename = QFileDialog::getOpenFileName(this,"打开图片","C:/Users/Administrator/Pictures","Images(*.png *.bmp *.jpg)"); if(!filename.isEmpty()) { ui->label_25->setStyleSheet(QStringLiteral("image:url(%1)").arg(filename)); } } png图片能显示,jpg依旧不行,我这个是一个按钮功能,按下打开一个文件夹然后选图片,在label上显示。imageformats目录也拷贝了。
萧洛 2018-04-17
  • 打赏
  • 举报
回复
程序独立运行,你要拷贝qt安装目录下的imageformats文件夹到.exe文件所在文件夹中,不需要plugins。
萧洛 2018-04-17
  • 打赏
  • 举报
回复
不需要那么复杂,直接调用setStyleSheet就行,比如: ui.label->setStyleSheet("border-image: url(:/TestTransFile/Resources/login_bg.jpg)"); //边框图方式,有拉伸效果 或 ui.label->setStyleSheet("background-image: url(:/TestTransFile/Resources/login_bg.jpg)"); //背景图方式,原始大小显示 url括号中字符串为图片路径。可以是图片在qrc资源文件中的路径,也可以是图片在硬盘中的路径。 获取文件名后,你可以这样: ui.label->setStyleSheet(QStringLiteral("border-image: url(%1)").arg(filename));
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
首先感谢各位热心回复,版主这个方法我也试过了,还是没起作用。。。
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
那是不是我修改代码把搜索到的jpg图片改为png图片加这个函数,不知道修改完会不会影响图片质量,我先试试
juebai123 2018-04-17
  • 打赏
  • 举报
回复
可以先转换成png
依旧如风 2018-04-17
  • 打赏
  • 举报
回复
我那qt里面的imageformats中的qjpeg.dll,没显示这个库第几版本,工具就是Windows通用的画图工具,另存为试过了没用,不兼容然后该怎么办呢,主要是一个问题,这个机器上X射线照射然后排出的JPEG图片,我没修改,在我这个软件上也无法显示,网上下载的JPEG图片可以显示。
cattpon 2018-04-17
  • 打赏
  • 举报
回复
为什么不另存为就可以了?
cceczjxy 2018-04-17
  • 打赏
  • 举报
回复
应该是JPEG库版本问题,你裁剪保存图片时的工具使用的jpeg库版本和你的jpeg qjpeg版本不兼容吧。
dext 2018-04-16
  • 打赏
  • 举报
回复
不需要 plugins 直接 imageformats 就可以了。
依旧如风 2018-04-16
  • 打赏
  • 举报
回复
这么麻烦啊。。。
HiroGuo 2018-04-16
  • 打赏
  • 举报
回复
需要重新编译,Qt的环境

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧