麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Qt將圖片保存為XML文件或者變?yōu)镼Sting

2019-11-11 05:06:23
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

軟件實(shí)現(xiàn)

只能打開(kāi)用這個(gè)軟件生成的xml文件,因?yàn)闃?biāo)簽不一樣有可能導(dǎo)致錯(cuò)誤

mainwindow.h

#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow();PRivate slots: void on_loadImageBtn_clicked(); void on_saveBtn_clicked(); void on_loadXmlBtn_clicked();private: Ui::MainWindow *ui;};#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"#include "ui_mainwindow.h"#include <QFile>#include <QFileDialog>#include <QMessageBox>#include <QTextStream>#include <QPixmap>#include <QDebug>#include <QByteArray>#include <QBuffer>#include <QXmlStreamWriter>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}MainWindow::~MainWindow(){ delete ui;}void MainWindow::on_loadImageBtn_clicked(){ QString line; //file1文件保存的是上一次打開(kāi)文件的地址 QFile file1("/savefile.txt"); if(file1.open(QIODevice::ReadOnly)) { QTextStream in(&file1); line = in.readLine(); } file1.close(); QString fileName = QFileDialog::getOpenFileName(this,"Open Image",line,tr("Image files(*.png *.jpg *.bmp)")); //上面的這一部分操作保證的是打開(kāi)的是上一次的上傳的文件 //將這次打開(kāi)的文件的地址重新寫(xiě)入到保存文件地址的文件中,如果用戶沒(méi)有重新選擇就不用保存 if(fileName.isEmpty())//用戶沒(méi)選中文件,接著進(jìn)行下面的操作就會(huì)崩潰,因?yàn)閟是一個(gè)空字符串 return; if(file1.open((QIODevice::WriteOnly))) { QTextStream in(&file1); in<<fileName; } file1.close(); QImage *image = new QImage(); if(!image->load(fileName)) { QMessageBox::information(this,tr("Open Image Failed"),tr("Open Image Failed")); delete image; return; } else { ui->label->setPixmap(QPixmap::fromImage(*image)); }}void MainWindow::on_saveBtn_clicked(){ const QPixmap *pixmap = ui->label->pixmap(); QImage image = pixmap->toImage(); QByteArray ba; QBuffer buffer(&ba); if(!buffer.open(QIODevice::WriteOnly)) { QMessageBox::information(this,tr("Save Xml"),tr("Save Xml Failed")); } //必須指明保存格式 image.save(&buffer,"PNG"); buffer.close(); QByteArray array = ba.toHex(); QString temp = array; QFile file("my.xml"); if(!file.open(QFile::WriteOnly | QFile::Text)) return; QXmlStreamWriter stream(&file); stream.setAutoFormatting(true); stream.writeStartDocument(); stream.writeStartElement("file"); stream.writeTextElement("image",temp); stream.writeEndElement(); stream.writeEndDocument(); file.close();}void MainWindow::on_loadXmlBtn_clicked(){ QString fileName = QFileDialog::getOpenFileName(this,"Open Xml","",tr("Image files(*.xml)")); QFile file(fileName); if(!file.open(QFile::ReadOnly | QFile::Text)) return; QXmlStreamReader reader(&file); // 如果沒(méi)有讀到文檔結(jié)尾,而且沒(méi)有出現(xiàn)錯(cuò)誤 while (!reader.atEnd()) { // 讀取下一個(gè)記號(hào),它返回記號(hào)的類(lèi)型 QXmlStreamReader::TokenType type = reader.readNext(); if (type == QXmlStreamReader::Characters && !reader.isWhitespace()) { QPixmap pixmap; pixmap.loadFromData(QByteArray::fromHex(reader.text().toLatin1())); ui->label->setPixmap(pixmap); } }}

這里寫(xiě)圖片描述

參考文獻(xiàn)

[1]http://www.qtcn.org/bbs/simple/?t30732.html


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美无限资源 | a视频在线免费观看 | 久久精品欧美一区二区三区不卡 | 欧美精品v国产精品v日韩精品 | 欧美69free性videos | 色成人在线 | 欧美一区二区三区久久精品视 | 久久激情小视频 | 717影院理论午夜伦八戒秦先生 | 91av久久| 成人超碰97 | 日本羞羞的午夜电视剧 | 性大片免费看 | 在线播放免费播放av片 | 九九热精| 精品一二三区视频 | 国内精品国产三级国产a久久 | 日本aaaa片毛片免费观看视频 | 国产一级毛片不卡 | 亚洲精品成人18久久久久 | 一级做受毛片免费大片 | 成年人黄色免费电影 | 久久久久久久久久久av | 午夜热门福利 | 成人wxx视频免费 | 欧美亚洲黄色 | 毛片电影在线看 | 日韩视频在线视频 | 亚洲午夜不卡 | 天海翼四虎精品正在播放 | 免费国产在线观看 | 成熟女人特级毛片www免费 | 久久老司机 | 国产精品高清一区 | 91精品国产乱码久久桃 | 国产精品视频自拍 | 午夜影院在线免费观看 | 久久久国产电影 | 蜜桃视频在线免费观看 | 视频一区免费观看 | 国产在线观看av |