Skip to content

diegoguedes91/redimensionador_de_imagem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Curso de Python 3 do Básico ao Avançado

Desafio: Criar um redimensionador de imagem

Para criar o layout do programa foi utilizado o Qt Designer

imagem do Qt Designer

Após salvar o arquivo deve converter o arquivo gerado em .ui para .py.
No linux utilizei o comando pyuic5 design.ui -o design.py no terminal.
É feito esta conversão de arquivos pois necessita importar a classe Ui_MainWindow gerado pelo Qt Designer.

import sys
from design import *
from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog
from PyQt5.QtGui import QPixmap

class RedimensionarImagem(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        super().setupUi(self)
        self.btnEscolherArquivo.clicked.connect(self.abrir_imagem)
        self.btnRedimensionar.clicked.connect(self.redimensionar)
        self.btnSalvar.clicked.connect(self.salvar)

Abaixo estão definidas as funções:

1. Abrir a imagem:

    def abrir_imagem(self):
        imagem, _ = QFileDialog.getOpenFileName(
            self.centralwidget,
            'abrir imagem',
            r'/home/diego/Pictures',
            options=QFileDialog.DontUseNativeDialog
        )
        self.inputAbrirArquivo.setText(imagem)
        self.original_img = QPixmap(imagem)
        self.labelImg.setPixmap(self.original_img)
        self.inputLargura.setText(str(self.original_img.width()))
        self.inputAltura.setText(str(self.original_img.height()))

Ao clicar no botão Escolher Imagem é aberto uma janela para o usuário escolher uma imagem.
Obs: o programa esta configurado para abrir na minha maquina ou seja no /home/diego/Pictures, basta trocar o local caso queira utilizar este codigo.

Abrindo imagem

Após escolher a imagem ela abrira no programa conforme as suas dimensões.

Abrindo imagem

2. Redimensionar a imagem:

    def redimensionar(self):
        largura = int(self.inputLargura.text())
        self.nova_imagem = self.original_img.scaledToWidth(largura)
        self.labelImg.setPixmap(self.nova_imagem)
        self.inputLargura.setText(str(self.nova_imagem.width()))
        self.inputAltura.setText(str(self.nova_imagem.height()))

O usuário deve inserir a largura ou altura que a imagem deve ter e clicar no botão Redimensionar.

Redimensionar imagem

3. Salvando a imagem:

       def salvar(self):
        imagem, _ = QFileDialog.getSaveFileName(
            self.centralwidget,
            'Salvar imagem',
            r'/home/diego/Desktop',
            options=QFileDialog.DontUseNativeDialog
        )
        self.nova_imagem.save(imagem, 'PNG')

Finalmente, quando a imagem estiver nas dimensões desejadas basta clicar em no botão salvar.
Obs: O programa abre direto /home/diego/Desktop, basta fazer a alteração do caminho para utilizar o codigo.

Salvando imagem

Para executar e abrir a aplicação:

if __name__ == '__main__':
    qt = QApplication(sys.argv)
    novo = RedimensionarImagem()
    novo.show()
    qt.exec()

About

Redimensionador de imagem usando Python, PyQt5, Qt Designer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages