欧美激情网站-中文字幕视频在线观看-四虎8848精品成人免费网站-国产91色-免费国产网站-国产一区二区自拍

免費加水印小軟件

下載地址

您的位置:首頁 > > 軟件下載 > 應用軟件 > 編程開發 > 批量加水印工具
95.56%
4.44%

免費加水印小軟件 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("Image files (*.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("Image files (*.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.setStyleSheet("QPushButton {background-image: url(" + os.path.abspath("scaled_image.png") + "); background-position: center; background-repeat: no-repeat; background-attachment: fixed}")
 
    def select_output_folder(self):
        file_dialog = QFileDialog()
        file_dialog.setFileMode(QFileDialog.DirectoryOnly)
        if file_dialog.exec_():
            self.output_folder = file_dialog.selectedFiles()[0]
            self.folder_button.setText("輸出文件夾: " + self.output_folder)
 
    def start_watermarking(self):
        self.progress_bar.setMaximum(len(self.image_paths))
 
        for index, image_path in enumerate(self.image_paths):
            image = Image.open(image_path)
            watermark = Image.open(self.watermark_path)
            watermark = watermark.resize(image.size, Image.ANTIALIAS)
            image.paste(watermark, (0,0), watermark)
            image.save(os.path.join(self.output_folder, os.path.basename(image_path)))
            self.progress_bar.setValue(index + 1)
 
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    app.setWindowIcon(QIcon("ppush.ico"))  # 設置應用程序的圖標,將顯示在任務欄
    sys.exit(app.exec_())

免費加水印小軟件 V2.0

普通下載地址:
本地普通下載
本地電信下載
浙江移動下載
北京聯通下載

精選軟件

主站蜘蛛池模板: 午夜毛片在线观看 | 亚洲94vvv男人的天堂五月 | 午夜三级理论在线观看视频 | 青娱乐在线免费 | 亚洲有码区 | 最近韩国日本高清免费观看 | 青青草视频免费看 | 欧美最黄视频 | 亚洲国产成人久久精品影视 | 我怒了在线播放完整版 | 天堂网2020| 色偷偷亚洲 | 日韩成人小视频 | 色综合久久天天综合绕观看 | 视频在线观看免费网址 | 在线视频中文字幕 | 天天干天天草天天 | 天天干天天操天天碰 | 日本不卡免费新一区二区三区 | 亚洲视频在线免费看 | 泄欲网站免费观看 | 日韩在线视频免费观看 | 亚欧乱色一区二区三区 | 日本三级带日本三级带黄国产 | 青娱乐国产精品 | 日韩一级特黄毛片在线看 | 特级aaa片毛片免费观看 | 中文字幕免费高清视频 | 亚洲第一视频网站 | 日韩精品欧美亚洲高清有无 | 四虎永久免费网站免费观看 | 亚洲精品日本 | 日韩黄色免费 | 中文字幕免费在线视频 | 天天干夜夜夜操 | 日韩专区在线播放 | 日韩一区二区三区不卡视频 | 亚洲一级大黄大色毛片 | 日本一区二区三区高清在线观看 | 五月天国产 | 新一级毛片国语版 |