最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python PIL圖片如何按比例裁剪

 更新時間:2022年05月10日 15:22:20   作者:XerCis  
這篇文章主要介紹了Python PIL圖片如何按比例裁剪,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

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調(diào)整圖片大小

使用 PIL 在圖片比例不變的情況下修改圖片大小。

介紹

Image.resize

def resize(self, size, resample=BICUBIC, box=None, reducing_gap=None):
    """
    Returns a resized copy of this image.
    返回此圖像的大小調(diào)整后的副本。
    :param size: The requested size in pixels, as a 2-tuple:
       (width, height).
     param size: 請求的大小(以像素為單位),是一個二元數(shù)組:(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元浮點數(shù),提供要縮放的源映像區(qū)域。
    :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: 通過兩個步驟調(diào)整圖像大小來應(yīng)用優(yōu)化。
    :returns: An :py:class:`~PIL.Image.Image` object.
     returns: 返回一個 PIL.Image.Image 對象
    """

看代碼吧

from PIL import Image
 
 
image = Image.open('圖片路徑')
 
# 調(diào)整圖片大小,并保持比例不變
# 給定一個基本寬度
base_width = 50
 
# 基本寬度與原圖寬度的比例
w_percent = base_width / float(image.size[0])
 
# 計算比例不變的條件下新圖的長度
h_size = int(float(image.size[1]) * float(w_percent))
 
# 重新設(shè)置大小
# 默認情況下,PIL使用Image.NEAREST過濾器進行大小調(diào)整,從而獲得良好的性能,但質(zhì)量很差。
image = image.resize((base_width, h_size), Image.ANTIALIAS)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python密碼學(xué)各種加密模塊教程

    python密碼學(xué)各種加密模塊教程

    這篇文章主要為大家介紹了python密碼學(xué)各種加密模塊教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python實現(xiàn)雙向鏈表

    Python實現(xiàn)雙向鏈表

    這篇文章主要為大家詳細介紹了Python實現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 基于python,Matplotlib繪制函數(shù)的等高線與三維圖像

    基于python,Matplotlib繪制函數(shù)的等高線與三維圖像

    這篇文章主要介紹了基于python,Matplotlib繪制函數(shù)的等高線與三維圖像,函數(shù)的等高線及其三維圖像的可視化方法,下面一起來學(xué)習(xí)具體內(nèi)容吧,需要的小伙伴可以參考一下
    2022-01-01
  • 利用Python實現(xiàn)簡單的驗證碼處理

    利用Python實現(xiàn)簡單的驗證碼處理

    這篇文章主要介紹了利用Python實現(xiàn)簡單的驗證碼處理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 使用Python標準庫中的wave模塊繪制樂譜的簡單教程

    使用Python標準庫中的wave模塊繪制樂譜的簡單教程

    這篇文章主要介紹了使用Python標準庫中的wave模塊繪制樂譜,涉及到了numpy模塊和坐標的可視化運用,用到了需要的朋友可以參考下
    2015-03-03
  • 快速實現(xiàn)基于Python的微信聊天機器人示例代碼

    快速實現(xiàn)基于Python的微信聊天機器人示例代碼

    本篇文章主要介紹了快速實現(xiàn)基于Python的微信聊天機器人示例代碼,基于itchat開發(fā),可以用它做一個微信聊天機器人,有興趣的可以了解一下。
    2017-03-03
  • Python利用字典樹實現(xiàn)獵詞游戲

    Python利用字典樹實現(xiàn)獵詞游戲

    獵詞(word hunt)是一類很常見的游戲,給你一張字母組成的表,然后讓你在這些字母中盡可能多的去尋找單詞。這類游戲用字典樹就能輕松完成,本文就來具體講講實現(xiàn)步驟,需要的可以參考一下
    2022-06-06
  • Python實現(xiàn)身份證號碼驗證的示例代碼

    Python實現(xiàn)身份證號碼驗證的示例代碼

    本文主要介紹了Python實現(xiàn)身份證號碼驗證的示例代碼,當用戶輸入身份證號,按下檢查按鈕,即可判斷身份證號是否正確,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • python控制臺顯示時鐘的示例

    python控制臺顯示時鐘的示例

    這篇文章主要介紹了python控制臺顯示時鐘的示例,需要的朋友可以參考下
    2014-02-02
  • python socket多線程通訊實例分析(聊天室)

    python socket多線程通訊實例分析(聊天室)

    這篇文章主要介紹了python socket多線程通訊方法,以聊天室程序?qū)嵗治隽薖ython基于Socket實現(xiàn)多線程通信的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04

最新評論

葵青区| 英超| 济源市| 呼伦贝尔市| 友谊县| 马山县| 常宁市| 华宁县| 准格尔旗| 当阳市| 临清市| 汉寿县| 新龙县| 三台县| 桂阳县| 横峰县| 沂源县| 瑞昌市| 海宁市| 句容市| 郎溪县| 磐石市| 房山区| 手机| 巫溪县| 安阳市| 新竹县| 湖北省| 罗城| 玉溪市| 海林市| 阳泉市| 祥云县| 厦门市| 盐津县| 吉林省| 邓州市| 察雅县| 大港区| 温州市| 衡山县|