iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >PythonPIL图片如何按比例裁剪
  • 492
分享到

PythonPIL图片如何按比例裁剪

2024-04-02 19:04:59 492人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录PIL图片如何按比例裁剪问题描述解决方案PIL调整图片大小介绍看代码吧PIL图片如何按比例裁剪 问题描述 如图片比例为 1:1 裁剪为 4:3 1.jpg 解决方案 from

PIL图片如何按比例裁剪

问题描述

如图片比例为 1:1 裁剪为 4:3

1.jpg

解决方案

from PIL import Image
def image_clip(filename, savename, width_scale, height_scale):
    """图像裁剪
    :param filename: 原图路径
    :param savename: 保存图片路径
    :param width_scale: 宽的比例
    :param height_scale: 高的比例
    """
    image = Image.open(filename)
    (width, height), (_width, _height) = image.size, image.size
    _height = width / width_scale * height_scale
    if _height > height:
        _height = height
        _width = width_scale * height / height_scale
    image.crop((0, 0, _width, _height)).save(savename)  # 左上角
    # image.crop((0, height - _height, _width, height)).save(savename)  # 左下角
    # image.crop((width - _width, 0, width, _height)).save(savename)  # 右上角
    # image.crop((width - _width, height - _height, width, height)).save(savename)  # 右下角
if __name__ == '__main__':
    filename = '1.jpg'
    savename = 'result.jpg'
    image_clip(filename, savename, width_scale=4, height_scale=3)
    # image_clip(filename, savename, width_scale=3, height_scale=4)

效果

PIL调整图片大小

使用 PIL 在图片比例不变的情况下修改图片大小。

介绍

Image.resize

def resize(self, size, resample=BICUBIC, box=None, reducing_gap=None):
    """
    Returns a resized copy of this image.
    返回此图像的大小调整后的副本。
    :param size: The requested size in pixels, as a 2-tuple:
       (width, height).
     param size: 请求的大小(以像素为单位),是一个二元数组:(width, height)
    :param resample: An optional resampling filter.  This can be
       one of :py:attr:`PIL.Image.NEAREST`, :py:attr:`PIL.Image.BOX`,
       :py:attr:`PIL.Image.BILINEAR`, :py:attr:`PIL.Image.HAMMING`,
       :py:attr:`PIL.Image.BICUBIC` or :py:attr:`PIL.Image.LANCZOS`.
       Default filter is :py:attr:`PIL.Image.BICUBIC`.
       If the image has mode "1" or "P", it is
       always set to :py:attr:`PIL.Image.NEAREST`.
       See: :ref:`concept-filters`.
     param resample: 一个可选的重采样过滤器。
    :param box: An optional 4-tuple of floats providing
       the source image region to be scaled.
       The values must be within (0, 0, width, height) rectangle.
       If omitted or None, the entire source is used.
     param box: 可选的4元浮点数,提供要缩放的源映像区域。
    :param reducing_gap: Apply optimization by resizing the image
       in two steps. First, reducing the image by integer times
       using :py:meth:`~PIL.Image.Image.reduce`.
       Second, resizing using regular resampling. The last step
       changes size no less than by ``reducing_gap`` times.
       ``reducing_gap`` may be None (no first step is perfORMed)
       or should be greater than 1.0. The bigger ``reducing_gap``,
       the closer the result to the fair resampling.
       The smaller ``reducing_gap``, the faster resizing.
       With ``reducing_gap`` greater or equal to 3.0, the result is
       indistinguishable from fair resampling in most cases.
       The default value is None (no optimization).
     param reducing_gap: 通过两个步骤调整图像大小来应用优化。
    :returns: An :py:class:`~PIL.Image.Image` object.
     returns: 返回一个 PIL.Image.Image 对象
    """

看代码吧

from PIL import Image
 
 
image = Image.open('图片路径')
 
# 调整图片大小,并保持比例不变
# 给定一个基本宽度
base_width = 50
 
# 基本宽度与原图宽度的比例
w_percent = base_width / float(image.size[0])
 
# 计算比例不变的条件下新图的长度
h_size = int(float(image.size[1]) * float(w_percent))
 
# 重新设置大小
# 默认情况下,PIL使用Image.NEAREST过滤器进行大小调整,从而获得良好的性能,但质量很差。
image = image.resize((base_width, h_size), Image.ANTIALIAS)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: PythonPIL图片如何按比例裁剪

本文链接: https://www.lsjlt.com/news/117870.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PythonPIL图片如何按比例裁剪
    目录PIL图片如何按比例裁剪问题描述解决方案PIL调整图片大小介绍看代码吧PIL图片如何按比例裁剪 问题描述 如图片比例为 1:1 裁剪为 4:3 1.jpg 解决方案 from ...
    99+
    2024-04-02
  • Python PIL图片怎么按比例裁剪
    这篇文章主要介绍“Python PIL图片怎么按比例裁剪”,在日常操作中,相信很多人在Python PIL图片怎么按比例裁剪问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python&nb...
    99+
    2023-06-30
  • Dreamweaver如何裁剪图片
    这篇文章将为大家详细讲解有关Dreamweaver如何裁剪图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。方法如下选中图片,直接在图片的属性中使用宽和高来更来图片的大小,或者是使用裁剪工具来对图片进行裁...
    99+
    2023-06-08
  • 基于RxPaparazzo实现图片裁剪、图片旋转、比例放大缩小功能
    前言:基于RxPaparazzo的图片裁剪,图片旋转、比例放大|缩小。效果: 开发环境:AndroidStudio2.2.1+gradle-2.14.1 涉及知识:Material Design(CardView+Coo...
    99+
    2023-05-31
    rxpaparazzo 图片裁剪 para
  • Python图片处理之图片裁剪的示例分析
    小编给大家分享一下Python图片处理之图片裁剪的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、操作流程首先会吧?有张照片这是网上随便找的一张照片,自行保存测试看看照片运行代码,其中show_img函数是展示照...
    99+
    2023-06-15
  • Vue图片裁剪组件实例代码
    示例: tip: 该组件基于vue-cropper二次封装 安装插件 npm install vue-cropper yarn add vue-cropper 写入封装...
    99+
    2024-04-02
  • Angular如何实现图片裁剪工具ngImgCrop
    小编给大家分享一下Angular如何实现图片裁剪工具ngImgCrop,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ngImgCrop是AngularJS的一个图片裁剪插件,它实际上是一个...
    99+
    2024-04-02
  • 如何用Vue实现图片裁剪组件
    这篇文章主要介绍“如何用Vue实现图片裁剪组件”,在日常操作中,相信很多人在如何用Vue实现图片裁剪组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用Vue实现图片裁剪组件”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • java实现的图片裁剪功能示例
    本文实例讲述了java实现的图片裁剪功能。分享给大家供大家参考,具体如下:PicCut.java:package Tsets;import java.awt.Rectangle;import java.awt.image.BufferedI...
    99+
    2023-05-31
    java 图片 裁剪
  • Android如何实现拍照及图片裁剪
    这篇文章主要介绍Android如何实现拍照及图片裁剪,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!最近做项目中涉及到了图片相关功能 ,在使用安卓6.0手机及7.1手机拍照时,遇到了因权限及文件管理导致程序崩溃等问题。...
    99+
    2023-05-30
    android6.0
  • 基于JavaScript如何实现图片裁剪功能
    本篇内容介绍了“基于JavaScript如何实现图片裁剪功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、图片文件的上传和读取使用文件上...
    99+
    2023-07-05
  • Java实现图片裁剪功能的示例详解
    目录前言Maven依赖代码验证一下前言 本文提供将图片按照自定义尺寸进行裁剪的Java工具类,一如既往的实用主义。 Maven依赖 <dependency>...
    99+
    2024-04-02
  • JavaScript如何实现小程序图片裁剪功能
    这篇文章主要介绍“JavaScript如何实现小程序图片裁剪功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JavaScript如何实现小程序图片裁剪功能”文章能帮助大家解决问题。图片上传与处理要...
    99+
    2023-07-05
  • 计算机中不裁剪如何把图片缩小
    这篇文章主要介绍计算机中不裁剪如何把图片缩小,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!不裁剪把图片缩小的方法:首先依次选择【文件-导出-储存为web所用格式】;然后选择输出格式为jpeg,并点击右上角的按钮;接着...
    99+
    2023-06-06
  • vue如何使用vue-cropper裁剪图片你知道吗
    目录一、安装:二、使用:三、内置方法:四、使用:总结 官网: https://github.com/xyxiao001/vue-cropper 一、安装: npm instal...
    99+
    2024-04-02
  • vue项目中如何使用vue-cropper做图片裁剪
    这篇文章主要介绍了vue项目中如何使用vue-cropper做图片裁剪的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue项目中如何使用vue-cropper做图片裁剪文章都会有所收获,下面我们一起来看看吧。一...
    99+
    2023-07-04
  • 微信小程序如何实现裁剪图片大小
    这篇文章主要介绍“微信小程序如何实现裁剪图片大小”,在日常操作中,相信很多人在微信小程序如何实现裁剪图片大小问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”微信小程序如何实现裁剪图片大小”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • css如何改变图片大小按比例缩放
    在css中设置图片大小按比例缩放的方法:1.首先,创建img标签,插入图片;2.使用width和height属性设置图片大小按比例缩放;在css中设置图片大小按比例缩放的方法首先,在页面中创建一个img标签,并插入图片;<!DOCTY...
    99+
    2024-04-02
  • Java实现按比例缩小图片
    本文实例为大家分享了Java实现按比例缩小图片的具体代码,供大家参考,具体内容如下 使用spring注解上传文件@RequestParam(value="", r...
    99+
    2024-04-02
  • Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】
    本文实例讲述了Java实现的微信图片处理工具类。分享给大家供大家参考,具体如下:现在 外面核心,图片文章比较少,看了拷贝代码,而用不了,用相应jar包处理,很多等比例缩放,达不到 想要的给予的期望:本工具类,是之前做微信打印机写的 基于ja...
    99+
    2023-05-30
    java 图片 工具类
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作