Qt 5.10 Book Examples
main.cpp
Go to the documentation of this file.
1 // ======================================================================
2 // main.cpp
3 // ======================================================================
4 // This file is a part of the book
5 // "Qt 5.10 Professional programming with C++"
6 // http://qt-book.com
7 // ======================================================================
8 // Copyright (c) 2017 by Max Schlee
9 // ======================================================================
10 
11 #include <QtWidgets>
12 
13 // ----------------------------------------------------------------------
14 QImage brightness(const QImage& imgOrig, int n)
15 {
16  QImage imgTemp = imgOrig.convertToFormat(QImage::Format_ARGB32);;
17  qint32 nHeight = imgTemp.height();
18  qint32 nWidth = imgTemp.width();
19 
20  for (qint32 y = 0; y < nHeight; ++y) {
21  QRgb* tempLine = reinterpret_cast<QRgb*>(imgTemp.scanLine(y));
22 
23  for (qint32 x = 0; x < nWidth; ++x) {
24  int r = qRed(*tempLine) + n;
25  int g = qGreen(*tempLine) + n;
26  int b = qBlue(*tempLine) + n;
27  int a = qAlpha(*tempLine);
28 
29  *tempLine++ = qRgba(r > 255 ? 255 : r < 0 ? 0 : r,
30  g > 255 ? 255 : g < 0 ? 0 : g,
31  b > 255 ? 255 : b < 0 ? 0 : b,
32  a
33  );
34  }
35  }
36 
37  return imgTemp;
38 }
39 
40 // ----------------------------------------------------------------------
41 int main(int argc, char** argv)
42 {
43  QApplication app(argc, argv);
44  QImage img(":/happyos.png");
45  QWidget wgt;
46 
47  QHBoxLayout* phbx = new QHBoxLayout;
48  phbx->setSpacing(0);
49 
50  for (int i = -150; i < 150; i += 50) {
51  QLabel* plbl = new QLabel;
52  plbl->setFixedSize(img.size());
53  QPixmap pix = QPixmap::fromImage(brightness(img, i));
54  plbl->setPixmap(pix);
55  phbx->addWidget(plbl);
56  }
57 
58  wgt.setLayout(phbx);
59  wgt.show();
60 
61  return app.exec();
62 }
int main(int argc, char **argv)
Definition: main.cpp:15
QImage brightness(const QImage &imgOrig, int n)
Definition: main.cpp:14