86 lines
2.2 KiB
C++
86 lines
2.2 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
|
|
#include <QFileDialog>
|
|
#include <QImage>
|
|
#include <QPicture>
|
|
|
|
#include <iostream>
|
|
using namespace std;
|
|
|
|
MainWindow::MainWindow(QWidget *parent) :
|
|
QMainWindow(parent),
|
|
ui(new Ui::MainWindow)
|
|
{
|
|
ui->setupUi(this);
|
|
connect(ui->actionOdpri,SIGNAL(triggered()),this,SLOT(nalozi()));
|
|
}
|
|
|
|
MainWindow::~MainWindow()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
void MainWindow::nalozi(){
|
|
slika = new QImage(QFileDialog::getOpenFileName(this,tr("Open Image"), ".", tr("Image Files (*.png *.jpg *.bmp)")));
|
|
zrcalna = new QImage(*slika);
|
|
crnobela = new QImage(*slika);
|
|
zrcali();
|
|
crnobelo();
|
|
ui->label->setPixmap(QPixmap::fromImage(*slika));
|
|
ui->label_2->setPixmap(QPixmap::fromImage(*crnobela));
|
|
ui->label_3->setPixmap(QPixmap::fromImage(*zrcalna));
|
|
}
|
|
|
|
/**
|
|
* Uporabite naslednje metode:
|
|
* QRgb pixel = slika->pixel(int i, int j);
|
|
* int slika->width();
|
|
* int slika->height();
|
|
* zrcalna->setPixel(int i, int j, QRgb pixel);
|
|
*
|
|
* Spremenljivke:
|
|
* slika - slika, ki jo naložite
|
|
* zrcalna - zrcalna slika
|
|
*/
|
|
void MainWindow::zrcali(){
|
|
for (int i=0; i < slika->width(); i++ ) {
|
|
for (int j=0; j < slika->height(); j++ ) {
|
|
QRgb pixel = slika->pixel(i, j);
|
|
zrcalna->setPixel(slika->width() - i, j, pixel);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Uporabite naslednje metode:
|
|
* QRgb pixel = slika->pixel(int i, int j);
|
|
* int slika->width();
|
|
* int slika->height();
|
|
* QColor color(QRgb pixel);
|
|
* int color.blue();
|
|
* int color.red();
|
|
* int color.green();
|
|
* void color.setBlue(int x);
|
|
* void color.setRed(int x);
|
|
* void color.setGreen(int x);
|
|
* crnobela->setPixel(int i, int j, QRgb pixel);
|
|
* QRgb qRgb(int red,int green,int blue);
|
|
*
|
|
* Spremenljivke:
|
|
* slika - slika, ki jo naložite
|
|
* crnobela - črno bela slika
|
|
*/
|
|
void MainWindow::crnobelo(){
|
|
for (int i=0; i < slika->width(); i++ ) {
|
|
for (int j=0; j < slika->height(); j++ ) {
|
|
QRgb pixel = slika->pixel(i, j);
|
|
QColor color(pixel);
|
|
int greyscale = (color.red() + color.green() + color.blue())/3;
|
|
pixel = qRgb(greyscale,greyscale,greyscale);
|
|
crnobela->setPixel(i, j, pixel);
|
|
}
|
|
}
|
|
}
|