pyQt5图片放大和缩小

基本实现图片缩小和放大 版本1

# 版本1
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtCore import QSize,Qt
from PIL import Image

def shrinkImage_down(self):
    '''
    缩小图片
    :return:
    '''
    scale = 0.8     #每次缩小20%
    img = QImage(self.path)  #创建图片实例
    newWidth = int(Width * scale)  
    newHeight = int(Height * scale)  #缩放宽高尺寸
    size = QSize(newWidth , newHeight )
    pixImg = QPixmap.fromImage(img.scaled(size, Qt.IgnoreAspectRatio))    #修改图片实例大小并从QImage实例中生成QPixmap实例以备放入QLabel控件中
     
    self.imageLabel.resize(newWidth , newHeight )
    self.imageLabel.setPixmap(pixImg)


def shrinkImage_up(self):
    '''
    缩小图片
    :return:
    '''
    scale = 1.2     #每次放到20%
    img = QImage(self.path)  #创建图片实例
    newWidth = int(Width * scale)  
    newHeight = int(Height * scale)  #放大宽高尺寸
    size = QSize(newWidth , newHeight )
    pixImg = QPixmap.fromImage(img.scaled(size, Qt.IgnoreAspectRatio))    #修改图片实例大小并从QImage实例中生成QPixmap实例以备放入QLabel控件中
  
    self.imageLabel.resize(newWidth , newHeight)
    self.imageLabel.setPixmap(pixImg)

基本实现图片缩小和放大 版本2

# 版本2
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtCore import QSize,Qt
from PIL import Image

def shrinkImage(label_obj, base_scale=1, base_scale_min=1, base_scale_max=8, image_path='', rate=1):
    """
    调整图片大小,放大和缩小,放大最大8倍,缩小最小1倍
    :param label_obj:  传入的pyQt中 QLabel 对象
    :param base_scale: 最初定义倍率
    :param base_scale_min: 最小倍率 1
    :param base_scale_max: 最大倍率 8
    :param image_path: 被调整的图片
    :param rate: 倍率(1,2,4,8)
    :return: 
    """
    scale = base_scale * rate
    base_scale = scale
    if base_scale < base_scale_min:
        scale = base_scale_min
        base_scale = base_scale_min
    elif base_scale > base_scale_max:
        scale = base_scale_max
        base_scale = base_scale_max
    img = QImage(image_path)  # 创建图片实例
    mgnWidth = int(img.size().width() * scale)
    mgnHeight = int(img.size().height() * scale)  # 缩放宽高尺寸
    size = QSize(mgnWidth, mgnHeight)
    pixImg = QPixmap.fromImage(img.scaled(size, Qt.IgnoreAspectRatio))  # 修改图片实例大小并从QImage实例中生成QPixmap实例以备放入QLabel控件中
    label_obj.resize(mgnWidth, mgnHeight)
    label_obj.setPixmap(pixImg)
    return base_scale
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中使用PyQt5可以实现图片放大缩小操作。下面是一个简单的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow, QVBoxLayout, QWidget from PyQt5.QtGui import QPixmap, QImage from PyQt5.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Image Viewer") self.setGeometry(100, 100, 800, 600) self.image_label = QLabel() self.image_label.setAlignment(Qt.AlignCenter) self.layout = QVBoxLayout() self.layout.addWidget(self.image_label) self.central_widget = QWidget() self.central_widget.setLayout(self.layout) self.setCentralWidget(self.central_widget) def load_image(self, image_path): image = QImage(image_path) pixmap = QPixmap.fromImage(image) self.image_label.setPixmap(pixmap) def scale_image(self, scale_factor): current_pixmap = self.image_label.pixmap() scaled_pixmap = current_pixmap.scaled(current_pixmap.width() * scale_factor, current_pixmap.height() * scale_factor, Qt.AspectRatioMode.KeepAspectRatio) self.image_label.setPixmap(scaled_pixmap) if __name__ == "__main__": app = QApplication(sys.argv) window = MainWindow() window.load_image("image.jpg") # 替换为你的图片路径 window.show() sys.exit(app.exec_()) ``` 上述代码创建了一个简单的图片查看器窗口,可以加载并显示指定路径的图片。其中,`load_image`方法用于加载图片,`scale_image`方法用于缩放图片。你可以通过调用`scale_image`方法并传入缩放因子来实现图片放大缩小

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值