用QT製作圖片轉換成ICO格式 領卓教育
阿新 • • 發佈:2018-12-19
標頭檔案 UI頁面自己設計自己的頁面,槽函式改下就可以
#include "app.h" #include "ui_app.h" #include <QDebug> #include <QImageReader> #include <QImageWriter> #include <QFileDialog> app::app(QWidget *parent) : QWidget(parent), ui(new Ui::app) { ui->setupUi(this); ui->radioButton_32->setChecked(true); this->setWindowIcon(QIcon(":/icons/png-0002.png"));//製作程式的圖示,自己找個喜歡的圖片 this->setWindowTitle("圖片轉ICO工具"); } app::~app() { delete ui; } void app::on_pushButton_select_clicked() { qDebug()<<"支援讀取的檔案型別"<<QImageReader::supportedImageFormats(); qDebug()<<"支援儲存的檔案型別"<<QImageWriter::supportedImageFormats(); src_filename = QFileDialog::getOpenFileName(this,tr("開啟檔案")); QFileInfo fi(src_filename); QString name =fi.fileName(); ui->label_filename->setText(name); } void app::on_pushButton_suc_clicked() { dst_filename = QFileDialog::getSaveFileName(this,tr("儲存為"),tr("./"),tr("*.ico")); QImage img(src_filename); img.save(dst_filename,"ico"); if(ui->radioButton_16->isChecked()) { width = 16; height = 16; } else if(ui->radioButton_32->isChecked()) { width = 32; height = 32; } else if(ui->radioButton_48->isChecked()) { width = 48; height = 48; } else if(ui->radioButton_64->isChecked()) { width = 64; height = 64; } else if(ui->radioButton_128->isChecked()) { width = 128; height = 128; } qDebug()<<width<<"*"<<height; QImage newing = img.scaled(width,height); newing.save(dst_filename,"ico"); } void app::on_pushButton_del_clicked() { ui->label_filename->clear(); ui->label_filename->setText(tr("未發現任何檔案")); } void app::on_pushButton_preview_clicked() { QPixmap map(this->src_filename); if(ui->radioButton_16->isChecked()) { width = 16; height = 16; } else if(ui->radioButton_32->isChecked()) { width = 32; height = 32; } else if(ui->radioButton_48->isChecked()) { width = 48; height = 48; } else if(ui->radioButton_64->isChecked()) { width = 64; height = 64; } else if(ui->radioButton_128->isChecked()) { width = 128; height = 128; } QPixmap newn = map.scaled(width,height); ui->label_pic1->setPixmap(newn); }
主函式
#ifndef APP_H #define APP_H #include <QWidget> namespace Ui { class app; } class app : public QWidget { Q_OBJECT public: explicit app(QWidget *parent = 0); ~app(); private slots: void on_pushButton_select_clicked(); void on_pushButton_suc_clicked(); void on_pushButton_del_clicked(); void on_pushButton_preview_clicked(); private: Ui::app *ui; QString src_filename; QString dst_filename; int width,height; }; #endif // APP_H