导航:首页 > 网络安全 > qt如何实现网络下载图片

qt如何实现网络下载图片

发布时间:2022-07-02 09:48:18

‘壹’ 怎样用qt代码编写图片保存格式

qt提供了多个保存图片的接口,比较常用的接口如下
bool QPixmap::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
参数说明:
fileName 文件的路径
可选参数:format 图片的格式(qt目前支持的格式见下表),如果未设置该值
则根据文件路径的后缀名来判断图片的存储格式。
可选参数:quality 图片的质量(可设置成0-100之内的值,数值越大说明保存的质量越好),如果未设置该值,则按照默认的设置来保存图片。
表一:qt 4.6.3支持的文件格式
格式 描述
BMP Windows Bitmap
JPG Joint Photographic Experts Group
JPEG Joint Photographic Experts Group
PNG Portable Network Graphics
PPM Portable Pixmap
TIFF Tagged Image File Format
XBM X11 Bitmap
XPM X11 Pixmap

bool QImage::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
参数说明同上;
这里举个使用QPixmap保存图片的例子:
QPixmap pixmap;
if(pixmap.load("D:\\images\\source.png"))
{
if(pixmap.save("distance.jpg"))
{
//save image successful
}else
{
//save image failure;
}
}else
{
//load image failure
}
注:如果需要对图片的保存参数进行更多的设置,可以使用QImageWriter提供的接口来实现

‘贰’ Qt加载图片资源库

用rcc。。。rcc image.qrc -o xxx.ui,然后用QResource::registerResource("xxx.ui");即可。。。用的时候,就像用qrc资源一样。这样做的好处是,编译出来的exe不会很大。

‘叁’ qt如何在线获取图片

在网上找到图片之后,复制到工程目录中,之后将其添加进工程的资源问价即可!

‘肆’ Qt怎么显示网络图片

#include <QtGui/QtGui>

#include "CImage.h"

CImage::CImage(QWidget *parent):QDialog(parent)
{
ImageLabel=new QLabel(tr("加载中."));

QVBoxLayout *vboxLayout = new QVBoxLayout;
vboxLayout->addWidget(ImageLabel);
setLayout(vboxLayout);

setWindowTitle(tr("加载网络图片测试"));
resize(300, 200);

currentPicture = new QPixmap;

//获取网络图片
QNetworkAccessManager *manager;
manager = new QNetworkAccessManager(this);

connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://www.oschina.net/img/logo_s2.png")));
}

void CImage::replyFinished(QNetworkReply *reply)
{
if(reply->error() == QNetworkReply::NoError)
{
//获取字节流构造 QPixmap 对象
currentPicture->loadFromData(reply->readAll());
QDateTime now;
QString filename = now.currentDateTime().toString("yyMMddhhmmss.jpg");
currentPicture->save(filename);//保存图片
//qDebug()<<"picture saved as "<<filename;
currentFileName = filename;

//可以在onpaint中 用QPixmap 显示currentPicture,则这种方法则不需要保存

//显示图片,
QMovie *move = new QMovie(currentFileName);
ImageLabel->setMovie(move);
move->start();
}
}

‘伍’ QT 如何对图片进行操作

1、一个简单的图片显示程序(以下仅是部分程序段,相信大家会看明白)

QPixmap pixmap( "image.jpg" ); //image.jpg在程序的当前目录下。
PixmapLabel1->setPixmap(pixmap); //PixmapLabel1标签即可显示图片。

2、将QImage转换为QPixmap

QString fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), QDir::currentPath());
if (!fileName.isEmpty())
{
QImage image(fileName); //定义QImage类。
if (image.isNull()) {
QMessageBox::information(this, tr("Image Viewer"),
tr("Cannot load %1.").arg(fileName));
return;
}
ui.label->setPixmap(QPixmap::fromImage(image)); 将QImage转换为QPixmap。
}

3、QImage的加载图片的方法(个人现只懂两种)

(1)、QImage image(fileName); //直接在QImage类的构造函数搞定,fileName是指应用程序的当前目录,相信大家能理解这里所说的当前目录。

(2)、 QImage image;
image.load(fileName); //使用了load方法。

‘陆’ QT编程的下载和使用

  1. qt 就是开源的, 免费下载,你只是去错地方了,下载地址是http://qt-project.org/downloads

  2. 建议用QT creator,安装vs后 qt creator 不会出现兼容错误

‘柒’ 如何用Qt的Qudpsocket传输图片文件

主要是你通过socket api封装要发送的数据,内部会自动封装成数据流进行传输。
1,什么是Socket
网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket由一个IP地址和一个端口号唯一确定。
但是,Socket所支持的协议种类也不光TCP/IP一种,因此两者之间是没有必然联系的。在Java环境下,Socket编程主要是指基于TCP/IP协议的网络编程。
2,Socket通讯的过程
Server端Listen(监听)某个端口是否有连接请求,Client端向Server 端发出Connect(连接)请求,Server端向Client端发回Accept(接受)消息。一个连接就建立起来了。Server端和Client 端都可以通过Send,Write等方法与对方通信。
对于一个功能齐全的Socket,都要包含以下基本结构,其工作过程包含以下四个基本的步骤:
(1) 创建Socket;
(2) 打开连接到Socket的输入/出流;
(3) 按照一定的协议对Socket进行读/写操作;
(4) 关闭Socket.(在实际应用中,并未使用到显示的close,虽然很多文章都推荐如此,不过在我的程序中,可能因为程序本身比较简单,要求不高,所以并未造成什么影响。)
3,创建Socket
创建Socket
java在包java.net中提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端。这是两个封装得非常好的类,使用很方便。其构造方法如下:
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)

Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);

在创建socket时如果发生错误,将产生IOException,在程序中必须对之作出处理。所以在创建Socket或ServerSocket是必须捕获或抛出例外。

‘捌’ qt 怎么加图片资源

如果图片比较小的话,可以在qrc文件里面添加图片的路径和别名
<RCC>
<qresource prefix="/image">
<file alias="check_f">image/Check_f.png</file>
</qresource>
</RCC>
我这个,图片路径是image/Check_f.png,别名是check_f
qt会自动将这些图片编译成2进制文件,和exe一起
调用时,QLabel *l = new QLabel(this);
l->setPixmap(QPixmap(":/image/check_f"));
即可

‘玖’ 我想在C++中插入图片,如果用QT要怎么实现

要下载QT SDK的.
Qt对dev-C++和visual C++不默认支持.不过通过插件好像可以做到.
用Qt Creator开发也很给力野,为什么要用dev-c++和visual c++呢.

阅读全文

与qt如何实现网络下载图片相关的资料

热点内容
网络机顶盒能连接路由器和电视吗 浏览:450
美版手机网络信号不稳定 浏览:783
iqoo5怎么老师没信号网络 浏览:116
企业有线网络无线网络解决方案 浏览:332
手机4g网络变成h是怎么回事 浏览:838
检查一下网络连接吧小爱同学 浏览:368
ar9285无线网络驱动 浏览:554
浙江医院无线网络认证 浏览:320
网络oi异常 浏览:524
心动网络有限公司是在哪里 浏览:776
玩穿越火线要装哪个网络好 浏览:885
手机共享网络放大 浏览:276
哪个网络电话是虚拟号码 浏览:37
没有网络游戏我们在玩什么 浏览:755
为什么手机打开移动网络不能使用 浏览:491
海康录像机没有网络视频怎么办 浏览:516
李沁怎么被网络骗得 浏览:902
电脑网络连接频率 浏览:513
iphone黑解后无法用移动网络 浏览:394
无线电脑共享网络能改有线嘛 浏览:452

友情链接