亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?PIL圖片怎么按比例裁剪

發布時間:2022-05-10 16:36:43 來源:億速云 閱讀:369 作者:iii 欄目:開發技術

這篇文章主要介紹“Python PIL圖片怎么按比例裁剪”,在日常操作中,相信很多人在Python PIL圖片怎么按比例裁剪問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python PIL圖片怎么按比例裁剪”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

PIL圖片如何按比例裁剪

問題描述

如圖片比例為 1:1 裁剪為 4:3

1.jpg

Python?PIL圖片怎么按比例裁剪

解決方案

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)

效果

Python?PIL圖片怎么按比例裁剪

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)

到此,關于“Python PIL圖片怎么按比例裁剪”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五莲县| 福清市| 淮阳县| 陕西省| 墨竹工卡县| 德令哈市| 衡阳县| 康保县| 蓝田县| 友谊县| 双牌县| 古浪县| 太仆寺旗| 九寨沟县| 旬阳县| 兴和县| 吉木萨尔县| 济南市| 淮滨县| 万州区| 双柏县| 蒲城县| 会理县| 邛崃市| 新兴县| 分宜县| 武隆县| 永城市| 手机| 理塘县| 合肥市| 海伦市| 清涧县| 钟祥市| 行唐县| 定结县| 娄烦县| 沂水县| 威信县| 津南区| 兰溪市|