How to include .txt on Qt
Unsolved
General and Desktop
-
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QPixmap> #include <QImage> #include <QFileDialog> #include <QColor> #include <QPoint> #include <QSize> #include <iostream> using namespace std; QColor Couleurdominante(const QImage& image, const QPoint& topLeft, const QSize& rectSize); void Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectSize, const QColor& colour); MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_push_clicked() { QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), "/", tr("Image Files (*.png *.jpg *.bmp)")); QPixmap pix(fileName); ui->label->setPixmap(pix); const QSize s = pix.size(); pixi = QImage(pix.toImage()); ui->label_2->setText( "Size: " + QString::number(s.width()) +" "+ QString::number(s.height()) ); } void MainWindow::on_push2_clicked() { for (int i=0;i<pixi.width();i+=z){ for (int j=0;j<pixi.height();j+=z){ k=k+0.06; Remplissage(pixi,QPoint(i,j),QSize(z,z),Couleurdominante(pixi,QPoint(i,j),QSize(z,z))); } } pixa=QPixmap::fromImage(pixi); ui->label_3->setPixmap(pixa); float a = k - 0.06*z; ui->label_4->setText(QString::number(a)); } void Remplissage(QImage& image, const QPoint& topLeft, const QSize& rectangle, const QColor& colour) { int maxX = topLeft.x() + rectangle.width(); int maxY = topLeft.y() + rectangle.height(); for(int x = topLeft.x(); x < maxX; ++x) { for(int y = topLeft.y(); y < maxY; ++y) { image.setPixelColor(x, y, colour); QMapIterator<QRgb, CostInfo>i; while (i.hasNext()) { i.next(); QColor BaseColor( i.key() ); if (Costs.contains( colour.rgb() ) || IsCloseColor(BaseColor, colour) ) { CostInfo& ci = Costs[colour.rgb()]; int Cost = ci.Cost; QPixmap pix( ci.ImageName ); } } } } } QColor Couleurdominante(const QImage & image,const QPoint & topLeft, const QSize & rectangle) { int rouge = 0, vert = 0, bleue = 0; int X = topLeft.x() + rectangle.width(); int Y = topLeft.y() + rectangle.height(); for (int y = topLeft.y(); y < Y; y++) { for (int x = topLeft.x(); x < X; x++) { QRgb pixel = image.pixel(x, y); rouge += qRed(pixel); vert += qGreen(pixel); bleue += qBlue(pixel); } } int n = rectangle.width() * rectangle.height(); Q_ASSERT(n); if (n <= 0) return Qt::black; return QColor(rouge / n, vert / n, bleue / n); } QMap<QRgb, CostInfo > Costs = { { QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }}, { QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }}, { QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }}, { QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }}, { QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }}, { QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }}, { QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }}, { QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }}, { QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }}, { QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }}, { QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }}, { QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }}, }; bool IsCloseColor( QColor c1, QColor c2 ) { int diffRed = Math.abs(c1.red() - c2.red()); int diffGreen = Math.abs(c1.green() - c2.green()); int diffBlue = Math.abs(c1.blue() - c2.blue()); if (diffBlue+diffRed+diffGreen< 100){ / return true;. else return false; } } void MainWindow::on_verticalSlider_sliderMoved(int position) { ui->verticalSlider->setRange(1,50); z=position; }
It said that CostInfo, Costs are not declared
-
Maybe you use it above where you define it or maybe u didnt show it how CostInfo is defined.
-
I defined my QMap here :
QMap<QRgb, CostInfo > Costs = { { QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }}, { QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }}, { QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }}, { QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }}, { QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }}, { QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }}, { QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }}, { QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }}, { QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }}, { QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }}, { QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }}, { QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }}, };
And this is a function call no ?
QMapIterator<QRgb, CostInfo>i;
-
Hi
And where is the definition for CostInfo ? -
@Flotisable Thank you,
so i have to define CostInfo as an int ?
-
i got
QMap<QRgb, CostInfo > Costs = { { QColor(255 , 0 , 0 ).rgb(), { "://fraise.png", 10 }}, { QColor(0 , 255 , 0 ).rgb(), { "://balleverte.png", 20 }}, { QColor(0 , 0 , 255 ).rgb(), { "://ballebleue.png", 20 }}, { QColor(255 , 255 , 255 ).rgb(), { "://balleblanche.png", 20 }}, { QColor(255 , 128 , 0 ).rgb(), { "://ballepeche.png", 20 }}, { QColor(0 , 0 , 0 ).rgb(), { "://noir.png", 20 }}, { QColor(102 , 51 , 0 ).rgb(), { "://marron.png", 20 }}, { QColor(255 , 102 , 78 ).rgb(), { "://rose.png", 20 }}, { QColor(0 , 204 , 204 ).rgb(), { "://turquoise.png", 20 }}, { QColor(255 , 178 , 102 ).rgb(), { "://beige.png", 20 }}, { QColor(76 , 0 , 153 ).rgb(), { "://violet.png", 20 }}, { QColor(100 , 100 , 100 ).rgb(), { "://gris.png", 20 }}, };
in my .cpp
and struct in my .h,
do i paste "QMap<QRgb, CostInfo > Costs;" in my .cpp like my function or in my .h (sorry but i didnt understand ur question ^^)