Muchas gracias. El ingles no es un problema.
Un saludo.
Un saludo.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
----------------------------------------------------------------------------------------------
<mainwindow.ui>
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>613</width>
<height>432</height>
</rect>
</property>
<property name="mouseTracking">
<bool>false</bool>
</property>
<property name="windowTitle">
<string>Aplicacion de Marcos</string>
</property>
<property name="windowIcon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_app_neotux.png</normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_app_neotux.png</iconset>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>150</x>
<y>10</y>
<width>451</width>
<height>341</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>131</width>
<height>193</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Colocación imagen</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="sliderPosition">
<number>50</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum>
</property>
<item>
<widget class="QSlider" name="verticalSlider">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="sliderPosition">
<number>50</number>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="enabled">
<bool>true</bool>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Quick_restart.png</normaloff>:/etiquetas/Material ejercicio 2/Quick_restart.png</iconset>
</property>
<property name="iconSize">
<size>
<width>50</width>
<height>50</height>
</size>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Escala</string>
</property>
</widget>
</item>
<item>
<widget class="QSlider" name="horizontalSlider_2">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>10</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="pageStep">
<number>1</number>
</property>
<property name="value">
<number>5</number>
</property>
<property name="sliderPosition">
<number>5</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>613</width>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="menuFichero">
<property name="title">
<string>Fichero</string>
</property>
<addaction name="actionCargar"/>
<addaction name="actionGrabar_en_el_disco"/>
<addaction name="actionSalir"/>
</widget>
<widget class="QMenu" name="menuAcerca_de">
<property name="title">
<string>Acerca de...</string>
</property>
</widget>
<addaction name="menuFichero"/>
<addaction name="menuAcerca_de"/>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
<addaction name="actionCargar"/>
<addaction name="actionGrabar_en_el_disco"/>
<addaction name="actionSalir"/>
<addaction name="actionAcerca_de"/>
</widget>
<widget class="QStatusBar" name="statusBar"/>
<action name="actionCargar">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_action_db_comit.png</normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_action_db_comit.png</iconset>
</property>
<property name="text">
<string>Cargar imagenes...</string>
</property>
</action>
<action name="actionGrabar_en_el_disco">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_device_floppy_unmount.png</normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_device_floppy_unmount.png</iconset>
</property>
<property name="text">
<string>Grabar en el disco</string>
</property>
</action>
<action name="actionSalir">
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_action_exit.png</normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_action_exit.png</iconset>
</property>
<property name="text">
<string>Salir</string>
</property>
</action>
<action name="actionAcerca_de">
<property name="checkable">
<bool>false</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
<property name="enabled">
<bool>true</bool>
</property>
<property name="icon">
<iconset resource="resources.qrc">
<normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_app_neotux.png</normaloff>:/etiquetas/Material ejercicio 2/Crystal_Clear_app_neotux.png</iconset>
</property>
<property name="text">
<string>Acerca de</string>
</property>
<property name="autoRepeat">
<bool>true</bool>
</property>
<property name="visible">
<bool>true</bool>
</property>
<property name="iconVisibleInMenu">
<bool>false</bool>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
<include location="resources.qrc"/>
</resources>
<connections/>
</ui>
-----------------------------------------------------------------------------------------------
<mainwindow.ui>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
//para seleccionar origen de archivo a abrir
#include <QFileDialog>
//para cargar imagenes y proporciones
#include <QPixmap>
//para ver cantidades de color
#include <QColor>
//para transparencias de foto
#include <QPainter>
#include <iostream>//libreria pruebas
using namespace std;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_horizontalSlider_valueChanged(int value);
void on_verticalSlider_valueChanged(int value);
void on_horizontalSlider_2_sliderMoved(int position);
void on_actionSalir_triggered();
void on_actionAcerca_de_triggered();
void croma();
void on_pushButton_clicked();
void on_actionCargar_triggered();
//void rellenarimagen();
private:
Ui::MainWindow *ui;
QFile file;
QPixmap Img,nuevo,nuevo2,nuevo3,nuevo3copia,nuevocopia,nuevocopia2;
//Img auxiliar para las escalas
//nuevo,nuevo2 imagenes originales
//nuevo3 nuestra resultante
//nuevo3copia y nuevocopia cpoias con las que trabajar
QImage imagen1,imagen2,resul,resulzoom;
QRgb color;
QPainter painter;
int rojo,verde,azul;
float proporcion,a,b;
};
#endif // MAINWINDOW_H
---------------------------------------------------------------------------------------------
<main.cpp>
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
---------------------------------------------------------------------------------------------
<mainwindow.cpp>
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{//constructor defecto
ui->setupUi(this);
}
MainWindow::~MainWindow()
{//destructor
delete ui;
}
//croma
void MainWindow::croma(){
for(int i=0;i<nuevo2.width();i++){
for(int j=0;j<nuevo2.height();j++){
color=imagen1.pixel(i,j);
verde=qGreen(color);
rojo= qRed(color);
azul=qBlue(color);
//no me sale de otra manera menos patatera
if (verde==255&&azul<=30&&rojo<=30){
}else{
resul.setPixel(i,j,color);
}
}
}
}
//cargamos el marco y la foto
void MainWindow::on_actionCargar_triggered()
{
QMessageBox::information(NULL,"Cargando...","Imagen base","Aceptar");
QString s = QFileDialog::getOpenFileName(this, "Cargar", NULL, "*.bmp");
if(!s.isEmpty()) {
Img.load(s);
}
if(!Img.isNull()) {
nuevo = Img.scaled(451,341);//escalo la imagen
ui->label_3->setPixmap(nuevo);
}
QMessageBox::information(NULL,"Cargando...","Marco","Aceptar");
s = QFileDialog::getOpenFileName(this, "Cargar", NULL, "*.bmp");
if(!s.isEmpty()) {
Img.load(s);
}
if(!nuevo.isNull()){
nuevo2 = Img.scaled(451,341);//escalo la imagen
imagen1= nuevo2.toImage();
//imagen copia a modificar
resul=nuevo.toImage();
croma();
}
nuevo3= QPixmap::fromImage(resul);
ui->label_3->setPixmap(nuevo3);
}
//boton de reiniciar
void MainWindow::on_pushButton_clicked()
{
ui->label_3->clear();
ui->label_3->setPixmap(nuevo3);
}
//Acerca de
void MainWindow::on_actionAcerca_de_triggered()
{
QMessageBox::information(NULL,"Creado por"," Alvaro","Aceptar");
}
//Salir del programa
void MainWindow::on_actionSalir_triggered()
{
qApp->exit();
}
/*
//rellenar el resto de la imagen
void MainWindow::rellenarimagen(){
nuevocopia=nuevo.scaled(a,b);
imagen1=nuevocopia.toImage();
nuevocopia2=QPixmap(451,341);
nuevocopia2.fill(Qt::gray);
resulzoom=nuevocopia2.toImage();
for(int i=0;i<nuevocopia2.width();i++){
for(int j=0;j<nuevocopia2.height();j++){
color=imagen1.pixel(i,j);
resulzoom.setPixel(i,j,color);
}
}
}*/
//barra horizontal para cambiar el zoom
void MainWindow::on_horizontalSlider_2_sliderMoved(int position)
{
ui->label_3->clear();
a=position*451*0.2;
b=position*341*0.2;
nuevocopia=nuevo.scaled(a,b);
nuevocopia2=nuevocopia.copy(0,0,451,341);
resul=nuevocopia2.toImage();
for(int i=0;i<nuevo2.width();i++){
for(int j=0;j<nuevo2.height();j++){
color=imagen1.pixel(i,j);
verde=qGreen(color);
rojo= qRed(color);
azul=qBlue(color);
if (verde==255&&azul<=30&&rojo<=30){
}else{
resul.setPixel(i,j,color);
}
}
}
nuevo3copia= QPixmap::fromImage(resul);
ui->label_3->setPixmap(nuevo3copia);
}
//desplazamiento vertical
void MainWindow::on_verticalSlider_valueChanged(int value)
{
}
//despalzamiento horizontal
void MainWindow::on_horizontalSlider_valueChanged(int value)
{
for(int i=0;i<nuevo2.width();i++){
for(int j=0;j<nuevo2.height();j++){
color=imagen1.pixel(i,j);
verde=qGreen(color);
rojo= qRed(color);
azul=qBlue(color);
//no me sale de otra manera menos patatera
if (verde==255&&azul<=30&&rojo<=30){
}else{
resul.setPixel(i,j,color);
}
}
}
//nuevo3copia.transformed();
}