微信朋友图九宫格代码,图案还有圆形。

查看 114|回复 12
作者:vocan   
可以拖动缩放,九宫格和圆形


QQ图片20241016012203.png (389.93 KB, 下载次数: 0)
下载附件
2024-10-16 01:23 上传



QQ图片20241016012153.png (595.77 KB, 下载次数: 0)
下载附件
2024-10-16 01:23 上传



`$S{3R]GCOL`UW6RX(9Y$]O.png (513.38 KB, 下载次数: 0)
下载附件
2024-10-16 01:23 上传

九宫格
[Python] 纯文本查看 复制代码import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QFileDialog, QMessageBox
from PyQt5.QtGui import QPixmap, QPainter, QPen, QImage
from PyQt5.QtCore import Qt, QPoint, QRect
from datetime import datetime
class ImageSplitter(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.image = None
        self.image_rect = None
        self.drag_start = None
        self.scale = 1.0
    def initUI(self):
        self.setWindowTitle('微信朋友圈九宫格图片分割工具by林林柒')
        self.setGeometry(100, 100, 650, 700)
        
        self.image_frame = QLabel(self)
        self.image_frame.setFixedSize(600, 600)
        self.image_frame.setAlignment(Qt.AlignCenter)
        self.image_frame.setStyleSheet("border: 1px solid black;")
        
        self.info_label = QLabel(self)
        self.info_label.setAlignment(Qt.AlignCenter)
        
        self.note_label = QLabel("备注:可以拖入图片或导入图片,可以拖动和鼠标滚轮缩放进行分割", self)
        self.note_label.setAlignment(Qt.AlignCenter)
        
        import_button = QPushButton('导入图片', self)
        import_button.clicked.connect(self.importImage)
        
        split_button = QPushButton('分割图片', self)
        split_button.clicked.connect(self.splitImage)
        
        button_layout = QHBoxLayout()
        button_layout.addWidget(import_button)
        button_layout.addWidget(split_button)
        
        layout = QVBoxLayout()
        layout.addWidget(self.image_frame)
        layout.addWidget(self.info_label)
        layout.addWidget(self.note_label)
        layout.addLayout(button_layout)
        
        self.setLayout(layout)
        
        self.setAcceptDrops(True)
    def importImage(self):
        file_name, _ = QFileDialog.getOpenFileName(self, "选择图片", "", "图片文件 (*.png *.jpg *.bmp)")
        if file_name:
            self.loadImage(file_name)
    def loadImage(self, file_name):
        self.image = QImage(file_name)
        if self.image.width()  0:
                self.scale *= 1.1
            else:
                self.scale /= 1.1
            self.image_rect.setWidth(int(self.image.width() * self.scale))
            self.image_rect.setHeight(int(self.image.height() * self.scale))
            self.updateImage()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ImageSplitter()
    ex.show()
    sys.exit(app.exec_())
圆形
[Python] 纯文本查看 复制代码import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QFileDialog, QMessageBox
from PyQt5.QtGui import QPixmap, QPainter, QPen, QImage, QColor, QBrush
from PyQt5.QtCore import Qt, QPoint, QRect
from datetime import datetime
class ImageSplitter(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.image = None
        self.image_rect = None
        self.drag_start = None
        self.scale = 1.0
    def initUI(self):
        self.setWindowTitle('微信朋友圈九宫格图片分割工具by林林柒')
        self.setGeometry(100, 100, 650, 700)
        
        self.image_frame = QLabel(self)
        self.image_frame.setFixedSize(600, 600)
        self.image_frame.setAlignment(Qt.AlignCenter)
        self.image_frame.setStyleSheet("border: 1px solid black;")
        
        self.info_label = QLabel(self)
        self.info_label.setAlignment(Qt.AlignCenter)
        
        self.note_label = QLabel("备注:可以拖入图片或导入图片,可以拖动和鼠标滚轮缩放进行分割", self)
        self.note_label.setAlignment(Qt.AlignCenter)
        
        import_button = QPushButton('导入图片', self)
        import_button.clicked.connect(self.importImage)
        
        split_button = QPushButton('分割图片', self)
        split_button.clicked.connect(self.splitImage)
        
        button_layout = QHBoxLayout()
        button_layout.addWidget(import_button)
        button_layout.addWidget(split_button)
        
        layout = QVBoxLayout()
        layout.addWidget(self.image_frame)
        layout.addWidget(self.info_label)
        layout.addWidget(self.note_label)
        layout.addLayout(button_layout)
        
        self.setLayout(layout)
        
        self.setAcceptDrops(True)
    def importImage(self):
        file_name, _ = QFileDialog.getOpenFileName(self, "选择图片", "", "图片文件 (*.png *.jpg *.bmp)")
        if file_name:
            self.loadImage(file_name)
    def loadImage(self, file_name):
        self.image = QImage(file_name)
        if self.image.width()  0:
                self.scale *= 1.1
            else:
                self.scale /= 1.1
            self.image_rect.setWidth(int(self.image.width() * self.scale))
            self.image_rect.setHeight(int(self.image.height() * self.scale))
            self.updateImage()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ImageSplitter()
    ex.show()
    sys.exit(app.exec_())

图片, 圆形

康哥   

直接运行会报错
报错内容是[Asm] 纯文本查看 复制代码PS H:\py> python .\9.py      
Traceback (most recent call last):
  File "H:\py\9.py", line 54, in importImage
    self.loadImage(file_name)
  File "H:\py\9.py", line 62, in loadImage
    self.image_rect = QRect(0, 0, self.image.width() * self.scale, self.image.height() * self.scale)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
  QRect(): too many arguments
  QRect(aleft: int, atop: int, awidth: int, aheight: int): argument 3 has unexpected type 'float'
  QRect(atopLeft: QPoint, abottomRight: QPoint): argument 1 has unexpected type 'int'
  QRect(atopLeft: QPoint, asize: QSize): argument 1 has unexpected type 'int'
  QRect(a0: QRect): argument 1 has unexpected type 'int'
把代码给ai修了一下,报错解决了
成品打包:
https://kang.lanzouo.com/i7b4V2cnivhe
*
http://cdn.kggzs.cn/BlackMythWukong/9.exe
[Python] 纯文本查看 复制代码import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QFileDialog, QMessageBox
from PyQt5.QtGui import QPixmap, QPainter, QPen, QImage
from PyQt5.QtCore import Qt, QPoint, QRect
from datetime import datetime
class ImageSplitter(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.image = None
        self.image_rect = None
        self.drag_start = None
        self.scale = 1.0
    def initUI(self):
        self.setWindowTitle('微信朋友圈九宫格图片分割工具by林林柒')
        self.setGeometry(100, 100, 650, 700)
         
        self.image_frame = QLabel(self)
        self.image_frame.setFixedSize(600, 600)
        self.image_frame.setAlignment(Qt.AlignCenter)
        self.image_frame.setStyleSheet("border: 1px solid black;")
         
        self.info_label = QLabel(self)
        self.info_label.setAlignment(Qt.AlignCenter)
         
        self.note_label = QLabel("备注:可以拖入图片或导入图片,可以拖动和鼠标滚轮缩放进行分割", self)
        self.note_label.setAlignment(Qt.AlignCenter)
         
        import_button = QPushButton('导入图片', self)
        import_button.clicked.connect(self.importImage)
         
        split_button = QPushButton('分割图片', self)
        split_button.clicked.connect(self.splitImage)
         
        button_layout = QHBoxLayout()
        button_layout.addWidget(import_button)
        button_layout.addWidget(split_button)
         
        layout = QVBoxLayout()
        layout.addWidget(self.image_frame)
        layout.addWidget(self.info_label)
        layout.addWidget(self.note_label)
        layout.addLayout(button_layout)
         
        self.setLayout(layout)
         
        self.setAcceptDrops(True)
    def importImage(self):
        file_name, _ = QFileDialog.getOpenFileName(self, "选择图片", "", "图片文件 (*.png *.jpg *.bmp)")
        if file_name:
            self.loadImage(file_name)
    def loadImage(self, file_name):
        self.image = QImage(file_name)
        if self.image.width()  0:
                self.scale *= 1.1
            else:
                self.scale /= 1.1
            self.image_rect.setWidth(int(self.image.width() * self.scale))
            self.image_rect.setHeight(int(self.image.height() * self.scale))
            self.updateImage()
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = ImageSplitter()
    ex.show()
    sys.exit(app.exec_())
Liyang001013   

有成品吗?不会用
kexing   


Liyang001013 发表于 2024-10-16 08:05
有成品吗?不会用

感谢分享 已收藏 打包成品分享到阿里云
https://www.alipan.com/s/jDiQ5xnsim5
1045837055lucy   


康哥 发表于 2024-10-16 09:00
直接运行会报错
报错内容是[mw_shl_code=asm,true]PS H:\py> python .\9.py      
Traceback (most recen ...

直点两个链接连在一起出错,显示“https://kang.lanzouo.com/i7b4V2c ... ackMythWukong/9.exe”,分隔下可以下载。
地址一:https://kang.lanzouo.com/i7b4V2cnivhe
地址二:http://cdn.kggzs.cn/BlackMythWukong/9.exe
vbpuro   

感谢分享。
35925   

我在py调试器里运行提示:
C:\Users\Administrator\AppData\Local\Programs\Python\Python312\python.exe C:\Users\Administrator\Desktop\圆形.py
Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\圆形.py", line 2, in
    from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QHBoxLayout, QFileDialog, \
ModuleNotFoundError: No module named 'PyQt5'
进程已结束,退出代码为 1
Wapj_Wolf   

原来分割图片还能这么玩,学习了。
d199212   

原来是一张图切出来的,每次看到九宫格都会想怎么有这么凑巧的图片
abear   

学习了,超级赞
您需要登录后才可以回帖 登录 | 立即注册

返回顶部