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);
}
}
}