批量加水印工具-免费加水印小软件下载 V2.0

水印添加工具 V2.0

语言:简体中文

大小:53M

类别:应用工具

时间:2024-12-05

软件介绍

  • 水印添加工具 V2.0

7.5 版本首次更新

在原有的PNG格式基础上,现已支持jpg、jpeg、bmp等图片格式(实在需要其他格式的水印吗...)
现在,上传完水印图片后,会在按钮内实时显示水印的预览图!
选择图片后,界面会显示已生成的图片数量及文件保存路径,同时新增了进度条显示功能
免费加水印小工具

代码如下

import os
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QFileDialog, QGridLayout, QSizePolicy, QLabel, QProgressBar
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import Qt, QSize
from PIL import Image

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("水印工具2.0")
        self.setWindowIcon(QIcon("push.ico"))

        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        self.layout = QGridLayout(self.central_widget)
        self.layout.setSpacing(0)

        self.watermark_path = ""
        self.image_paths = []
        self.output_folder = ""

        self.watermark_button = QPushButton("选择水印图片")
        self.watermark_button.clicked.connect(self.select_watermark)
        self.layout.addWidget(self.watermark_button, 2, 0)

        self.image_button = QPushButton("选择图片")
        self.image_button.clicked.connect(self.select_images)
        self.layout.addWidget(self.image_button, 2, 1)

        self.folder_label = QLabel()
        self.layout.addWidget(self.folder_label, 3, 0)

        self.folder_button = QPushButton("选择输出文件夹")
        self.folder_button.clicked.connect(self.select_output_folder)
        self.layout.addWidget(self.folder_button, 4, 0)

        self.start_button = QPushButton("开始添加水印")
        self.start_button.clicked.connect(self.start_watermarking)
        self.layout.addWidget(self.start_button, 4, 1)

        self.progress_bar = QProgressBar()
        self.layout.addWidget(self.progress_bar, 5, 0, 1, 2)

        self.central_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.watermark_button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.image_button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.folder_button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.start_button.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)

        self.central_widget.setLayout(self.layout)
        self.setMinimumSize(500, 500)
        self.show()

    def select_watermark(self):
        file_dialog = QFileDialog()
        file_dialog.setNameFilter("图片文件 (*.png *.jpg *.jpeg *.bmp)")
        if file_dialog.exec_():
          self.watermark_path = file_dialog.selectedFiles()[0]
          pixmap = QPixmap(self.watermark_path)
          pixmap = pixmap.scaled(self.watermark_button.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
          scaled_path = os.path.join(os.path.dirname(self.watermark_path), "scaled_watermark.png")
          pixmap.save(scaled_path)
          scaled_path = scaled_path.replace('\\', '/') # 将路径中的反斜杠替换为正斜杠
          self.watermark_button.setStyleSheet(f"QPushButton {{background-image: url({scaled_path}); background-position: center; background-repeat: no-repeat; background-attachment: fixed}}")

    def select_images(self):
        file_dialog = QFileDialog()
        file_dialog.setNameFilter("图片文件 (*.png *.jpg *.jpeg)")
        file_dialog.setFileMode(QFileDialog.ExistingFiles)
        if file_dialog.exec_():
          self.image_paths = file_dialog.selectedFiles()

          # 更新按钮文本,显示选择的图片数量
          self.image_button.setText(f"选择图片 ({len(self.image_paths)})")

          pixmap = QPixmap(self.image_paths[0])
          pixmap = pixmap.scaled(self.image_button.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
          pixmap.save("scaled_image.png")
          self.image_button.setStyle
展开全部
收起