Merge branch 'master-webassembly' of https://gitlab.com/portfolio91/namecreater into master-webassembly
# Conflicts: # NameCreater/NameCreater.pro.user # NameCreater/customlogo2.cpp
This commit is contained in:
commit
1405d54f33
@ -23,33 +23,42 @@ INameCreater::~INameCreater()
|
||||
|
||||
void INameCreater::saveToImage(const QString& filename, QGraphicsScene* scene)
|
||||
{
|
||||
scene->clearSelection(); // Selections would also render to the file
|
||||
scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents
|
||||
QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene
|
||||
image.fill(Qt::transparent); // Start all pixels transparent
|
||||
int dpm = 300 / 0.0254; // ~300 DPI
|
||||
image.setDotsPerMeterX(dpm);
|
||||
image.setDotsPerMeterY(dpm);
|
||||
scene->clearSelection(); // Selections would also render to the file
|
||||
scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents
|
||||
QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene
|
||||
image.fill(Qt::transparent); // Start all pixels transparent
|
||||
int dpm = 300 / 0.0254; // ~300 DPI
|
||||
image.setDotsPerMeterX(dpm);
|
||||
image.setDotsPerMeterY(dpm);
|
||||
|
||||
|
||||
QPainter painter(&image);
|
||||
scene->render(&painter);
|
||||
|
||||
|
||||
QPainter painter(&image);
|
||||
scene->render(&painter);
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
qDebug() << "app director path" <<QCoreApplication::applicationDirPath();
|
||||
#else
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
QString folder_name = "./";//QCoreApplication::applicationDirPath() + "/export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
#endif
|
||||
|
||||
image.save(filename, "JPEG");
|
||||
QString savePath = folder_name.append(filename);
|
||||
|
||||
QByteArray imageData;
|
||||
QBuffer buffer(&imageData);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
QPixmap pixmap = QPixmap::fromImage(image);
|
||||
pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP"
|
||||
#ifdef Q_OS_WASM
|
||||
QByteArray imageData;
|
||||
QBuffer buffer(&imageData);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
QPixmap pixmap = QPixmap::fromImage(image);
|
||||
pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP"
|
||||
|
||||
QFileDialog::saveFileContent(imageData, filename);
|
||||
QFileDialog::saveFileContent(imageData, savePath);
|
||||
#else
|
||||
|
||||
qDebug()<<"image save path:" << savePath;
|
||||
image.save(savePath, "JPEG");
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -34,9 +34,9 @@ public:
|
||||
QFont EnglisthFont() const {
|
||||
return eng_Font;
|
||||
}
|
||||
|
||||
void saveToImage(const QString& filename, QGraphicsScene* scene);
|
||||
protected:
|
||||
void saveToImage(const QString& filename, QGraphicsScene* scene);
|
||||
|
||||
QList<NameInfo_t> getNameByFile(Name_Type_e type, const QString& filename);
|
||||
QList<NameInfo_t> getNameByFileContent(Name_Type_e type, const QByteArray& conetent);
|
||||
|
||||
|
||||
@ -122,43 +122,58 @@ void NameCreater::loadFont(const QByteArray& fontdata){
|
||||
void NameCreater::OnClickedReadBtn() {
|
||||
auto sender =(QPushButton*) QObject::sender();
|
||||
|
||||
#ifdef Q_OS_WASM
|
||||
|
||||
auto fileContentReady = [this, sender](const QString &fileName, const QByteArray &fileContent) {
|
||||
if (fileName.isEmpty()) {
|
||||
// No file was selected
|
||||
if (!fileName.isEmpty()) {
|
||||
this->execCreater(sender, fileName, fileContent);
|
||||
}
|
||||
else {
|
||||
// Use fileName and fileContent
|
||||
if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color);
|
||||
|
||||
if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
|
||||
if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
|
||||
if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color);
|
||||
if (sender == ui.birthday_zh_eng_btn) {
|
||||
BirthdayCreater creater;
|
||||
creater.setEnglishFont(font_english);
|
||||
creater.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color);
|
||||
}
|
||||
if (sender == ui.birthday_eng_eng_btn){
|
||||
BirthdayCreater b;
|
||||
b.setEnglishFont(font_english);
|
||||
b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color);
|
||||
}
|
||||
if (sender == ui.handkerchief_btn) {
|
||||
QFont newFont(font);
|
||||
newFont.setPixelSize(78);
|
||||
QColor newColor(0,0,0);
|
||||
HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, newFont, newColor);
|
||||
}
|
||||
if (sender == ui.fivesingle_zh_eng_btn) {
|
||||
FiveToSingle f;
|
||||
f.setEnglishFont(this->font_english);
|
||||
f.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
QFileDialog::getOpenFileContent("CSV (*.csv)", fileContentReady);
|
||||
|
||||
#else
|
||||
QString filename = QFileDialog::getOpenFileName(nullptr,"Open Name File", QDir::currentPath(),"CSV file(*.csv)");
|
||||
if(!filename.isEmpty()){
|
||||
QFile _f(filename);
|
||||
if(_f.open(QIODevice::ReadOnly)){
|
||||
execCreater(sender, filename, _f.readAll());
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void NameCreater::execCreater(QObject* sender, const QString& fileName, const QByteArray& fileContent) {
|
||||
|
||||
// Use fileName and fileContent
|
||||
if(sender == ui.fivesingle_btn) FiveToSingle().generaImageFromCSV(Name_Type_e::Name_zh,fileName, fileContent, this->font, this->font_color);
|
||||
|
||||
if(sender == ui.birthday_btn) BirthdayCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
|
||||
if(sender == ui.fivenew_btn) NewFiveCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font, this->font_color);
|
||||
if(sender == ui.towel_btn) TowelCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, this->font_towel, this->font_color);
|
||||
if (sender == ui.birthday_zh_eng_btn) {
|
||||
BirthdayCreater creater;
|
||||
creater.setEnglishFont(font_english);
|
||||
creater.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color);
|
||||
}
|
||||
if (sender == ui.birthday_eng_eng_btn){
|
||||
BirthdayCreater b;
|
||||
b.setEnglishFont(font_english);
|
||||
b.generaImageFromCSV(Name_Type_e::Name_eng, fileName,fileContent,this->font, this->font_color);
|
||||
}
|
||||
if (sender == ui.handkerchief_btn) {
|
||||
QFont newFont(font);
|
||||
newFont.setPixelSize(78);
|
||||
QColor newColor(0,0,0);
|
||||
HKHolderCreater().generaImageFromCSV(Name_Type_e::Name_zh, fileName, fileContent, newFont, newColor);
|
||||
}
|
||||
if (sender == ui.fivesingle_zh_eng_btn) {
|
||||
FiveToSingle f;
|
||||
f.setEnglishFont(this->font_english);
|
||||
f.generaImageFromCSV(Name_Type_e::Name_zh_eng, fileName, fileContent, this->font, this->font_color);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void NameCreater::OnClickedCustomLogoBtn() {
|
||||
|
||||
@ -25,6 +25,7 @@ private:
|
||||
|
||||
QNetworkAccessManager network_mgr;
|
||||
void loadFont(const QByteArray& fontdata);
|
||||
void execCreater(QObject*sender, const QString&fileName, const QByteArray &fileContent);
|
||||
|
||||
private Q_SLOTS:
|
||||
void OnClickedReadBtn();
|
||||
|
||||
@ -21,6 +21,7 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
|
||||
wasm-emscripten{
|
||||
QMAKE_LFLAGS+= -s TOTAL_MEMORY=67108864
|
||||
QMAKE_LFLAGS += -s ALLOW_MEMORY_GROWTH=1
|
||||
}
|
||||
#QMAKE_LFLAGS += -s ALLOW_MEMORY_GROWTH=1
|
||||
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
#include "ui_customlogo.h"
|
||||
#include "QFileDialog"
|
||||
|
||||
|
||||
#include <QMessageBox>
|
||||
#include <QDateTime>
|
||||
#include <QTextCodec>
|
||||
@ -55,10 +56,7 @@ void CustomLogo::loadBGFromFile()
|
||||
}else{
|
||||
qDebug()<<"Data content not image format";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
QFileDialog::getOpenFileContent("Image (*.jpg)", fileContentReady);
|
||||
@ -125,7 +123,6 @@ void CustomLogo::gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_Ty
|
||||
QString name = name_info.name1;
|
||||
int name_len = name.length();
|
||||
for (int j = 0; j < 1; j++) { // never reverse
|
||||
int pos_idx = idx * 2 + j;
|
||||
qreal xscale, yscale;
|
||||
|
||||
xscale = yscale = (j == 1) ? -1 : 1;
|
||||
@ -155,7 +152,8 @@ void CustomLogo::gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_Ty
|
||||
if (is_export_page || n == nameList.count() - 1) {
|
||||
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm");
|
||||
QString file_name = QString("Signal_%2_%1.jpg").arg(QString::number(export_times + 1), date_str);
|
||||
saveToImage(file_name, &scene);
|
||||
//saveToImage(file_name, &scene);
|
||||
INameCreater().saveToImage(file_name, &scene);
|
||||
export_times++;
|
||||
|
||||
scene.clear();
|
||||
@ -231,35 +229,3 @@ void CustomLogo::onClickedBtn() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
void CustomLogo::saveToImage(const QString& filename, QGraphicsScene* scene)
|
||||
{
|
||||
scene->clearSelection(); // Selections would also render to the file
|
||||
scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents
|
||||
QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene
|
||||
image.fill(Qt::transparent); // Start all pixels transparent
|
||||
int dpm = 300 / 0.0254; // ~300 DPI
|
||||
image.setDotsPerMeterX(dpm);
|
||||
image.setDotsPerMeterY(dpm);
|
||||
|
||||
|
||||
QPainter painter(&image);
|
||||
scene->render(&painter);
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
#else
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
#endif
|
||||
|
||||
image.save(filename, "JPEG");
|
||||
|
||||
QByteArray imageData;
|
||||
QBuffer buffer(&imageData);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
QPixmap pixmap = QPixmap::fromImage(image);
|
||||
pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP"
|
||||
|
||||
QFileDialog::saveFileContent(imageData, filename);
|
||||
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
#define CUSTOMLOGO_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "INameCreater.h"
|
||||
#include "QFont"
|
||||
#include "INameCreater.h"
|
||||
|
||||
namespace Ui {
|
||||
class CustomLogo;
|
||||
@ -24,7 +24,6 @@ private:
|
||||
void loadBGFromFile();
|
||||
void loadListFromFile();
|
||||
void gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_Type_e type);
|
||||
void saveToImage(const QString& filename, QGraphicsScene* scene);
|
||||
|
||||
protected:
|
||||
QList<NameInfo_t> getNameByFileContent(Name_Type_e type, const QByteArray& conetent);
|
||||
|
||||
@ -215,7 +215,7 @@ void customlogo2::gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_T
|
||||
if (is_export_page || n == nameList.count() - 1) {
|
||||
QString date_str = QDateTime::currentDateTime().toString("MMddhhmm");
|
||||
QString file_name = QString("Signal_%2_%1.jpg").arg(QString::number(export_times + 1), date_str);
|
||||
saveToImage(file_name, &scene);
|
||||
INameCreater().saveToImage(file_name, &scene);
|
||||
export_times++;
|
||||
|
||||
scene.clear();
|
||||
@ -233,39 +233,3 @@ void customlogo2::gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_T
|
||||
msgBox.exec();
|
||||
|
||||
}
|
||||
|
||||
void customlogo2::saveToImage(const QString& filename, QGraphicsScene* scene)
|
||||
{
|
||||
scene->clearSelection(); // Selections would also render to the file
|
||||
scene->setSceneRect(scene->itemsBoundingRect()); // Re-shrink the scene to it's bounding contents
|
||||
QImage image(scene->sceneRect().size().toSize(), QImage::Format_ARGB32); // Create the image with the exact size of the shrunk scene
|
||||
image.fill(Qt::transparent); // Start all pixels transparent
|
||||
int dpm = 300 / 0.0254; // ~300 DPI
|
||||
image.setDotsPerMeterX(dpm);
|
||||
image.setDotsPerMeterY(dpm);
|
||||
|
||||
|
||||
QPainter painter(&image);
|
||||
scene->render(&painter);
|
||||
|
||||
|
||||
|
||||
#ifdef Q_OS_MAC
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/../../../export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
qDebug() << "app director path" <<QCoreApplication::applicationDirPath();
|
||||
#else
|
||||
QString folder_name = QCoreApplication::applicationDirPath() + "/export_" + QDateTime::currentDateTime().toString("yyyyMMdd");
|
||||
#endif
|
||||
|
||||
image.save(folder_name.append(filename), "JPEG");
|
||||
|
||||
QByteArray imageData;
|
||||
QBuffer buffer(&imageData);
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
QPixmap pixmap = QPixmap::fromImage(image);
|
||||
pixmap.save(&buffer, "JPEG", 100); // You can also use other formats like "JPEG" or "BMP"
|
||||
|
||||
QFileDialog::saveFileContent(imageData, filename);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@ private:
|
||||
|
||||
void loadListFromFile();
|
||||
void gerneraImageFromList(const QList<NameInfo_t>& nameList, Name_Type_e type);
|
||||
void saveToImage(const QString& filename, QGraphicsScene* scene);
|
||||
|
||||
|
||||
protected:
|
||||
QList<NameInfo_t> getNameByFileContent(Name_Type_e type, const QByteArray& conetent);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#ifndef DEF_H
|
||||
#define DEF_H
|
||||
|
||||
#define VERSION "v2.8.0"
|
||||
#define VERSION "v2.8.1"
|
||||
|
||||
#endif // DEF_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user