Python「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)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章