一个图像加密的应用场景小程序

最近参加一个图像信息安全与人工智能结合的比赛,评审后专家说要有一个应用场景,做了一个基于加密图像的身份认证场景程序,pyqyt5写的

from PyQt5.QtWidgets import *
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from qtconsole.qt import QtGui
import cv2 as cv
import numpy as np


class  First(QWidget):
    def __init__(self):
        super(First, self).__init__()
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('图像加密应用场景程序')
        self.setup_ui()
        self.size_move()


    def setup_ui(self):
        self.lb0 = QLabel(self, text='图像加密应用场景演示程序')
        self.lb1=QLabel(self,text='账号:')
        self.le1=QLineEdit(self)
        self.lb2 = QLabel(self, text='密码:')
        self.le2= QLineEdit(self)
        self.le2.setEchoMode(2)
        self.btn1=QPushButton(self,text='登录')
        self.btn1.clicked.connect(lambda:self.login_slot())
        self.btn2 = QPushButton(self, text='退出')
        self.btn2.clicked.connect(lambda:self.quclose())

    def size_move(self):
        self.lb0.resize(200, 200)
        self.lb0.setStyleSheet('font,:90px')
        self.lb0.move(150,20)

        self.lb1.resize(100,20)
        self.lb1.setStyleSheet('font,:20px')
        self.lb1.move(100,150)

        self.le1.resize(160,20)
        self.le1.move(150,150)

        self.lb2.resize(100, 20)
        self.lb2.setStyleSheet('font,:20px')
        self.lb2.move(100, 200)


        self.le2.resize(160,20)
        self.le2.move(150,200)

        self.btn1.move(100, 250)
        self.btn2.move(250, 250)

    def login_slot(self):
        name=self.le1.text()
        pwd=self.le2.text()

        if name =='admin' and pwd =='123':
            b.show()
        else:
           self.le1.setText('')
           self.le1.setFocus()
           self.le2.setText('')
           QMessageBox.warning(self, '错误', '用户名或密码不正确!')


    def quclose(self):
        reply = QMessageBox.information(self,  "警告", "确认退出?",QMessageBox.Yes | QMessageBox.No)
        if reply == QMessageBox.Yes:
            self.close()
        else:
            self.show()


class Second(QWidget):
    def __init__(self):
       super().__init__()
       self.initUI()

    def initUI(self):
        self.setGeometry(400, 400, 600, 600)
        self.setWindowTitle('上传身份图片')
        self.label = QLabel(self)
        self.label.setText(" 显示图片")
        self.label.setFixedSize(300, 200)
        self.label.move(160, 160)

        self.label.setStyleSheet("QLabel{background:white;}"
                                 "QLabel{color:rgb(300,300,300,120);font-size:10px;font-weight:bold;font-family:宋体;}"
                                 )

        btn1 = QPushButton(self)
        btn1.setText("上传图片")
        btn1.move(100, 80)
        btn1.clicked.connect(self.openimage)


    def openimage(self):
        src = cv.imread('E:/s/1.png')
        imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "jpg", "*.bmp;;*.png;;All Files(*)")
        jpg = QtGui.QPixmap(imgName).scaled(self.label.width(), self.label.height())
        self.label.setPixmap(jpg)
        c.show()

class Thrid(QWidget):
    def __init__(self):
        super(Thrid, self).__init__()
        self.setGeometry(300, 300, 500, 500)
        self.setWindowTitle('加密身份验证')
        #self.setup1_ui()

        self.btn3 = QPushButton(self, text='加密身份验证')
        self.btn3.clicked.connect(lambda: self.setup1_ui())
        self.btn3.resize(150, 150)
        self.btn3.setStyleSheet('font,:20px')
        self.btn3.move(160, 150)

    def setup1_ui(self):
        QMessageBox.warning(self, '身份验证', '恭喜!身份验证成功!')

if __name__ == '__main__':
    app=QApplication(sys.argv)
    win=First()
    win.show()
    b=Second()
    c=Thrid()
    sys.exit(app.exec_())

猜你喜欢

转载自blog.csdn.net/bj21002000/article/details/107805899