一个小型Python包,可以轻松调整图像大小
项目描述
一个Python包,可以轻松调整图像大小
此包提供用于轻松调整图像大小的函数。
依赖关系
Pillow 2.7++
Python 2.7/3.4
简介
以下函数受支持
resize_crop 使用指定大小的居中矩形裁剪图像。
resize_cover 将图像调整到指定区域大小,如有需要则裁剪(与background-size: cover行为相同)。
resize_contain 将图像调整到可以适应指定区域的大小,保持比例而不裁剪(与background-size: contain行为相同)。
resize_height 将图像调整到指定高度,同时调整宽度以保持相同的比例。
resize_width 将图像调整到指定宽度,同时调整高度以保持相同的比例。
resize_thumbnail 在保持比例的同时调整图像大小,尽可能匹配指定的大小。
安装
使用pip安装python-resize-image
pip install python-resize-image
用法
python-resize-image接受第一个参数为PIL.Image,然后是size参数,该参数可以是一个整数或两个整数的元组。
在以下示例中,我们打开一个图像,裁剪它并另存为新文件
from PIL import Image
from resizeimage import resizeimage
with open('test-image.jpeg', 'r+b') as f:
with Image.open(f) as image:
cover = resizeimage.resize_cover(image, [200, 100])
cover.save('test-image-cover.jpeg', image.format)
在调整大小之前,python-image-resize 将检查操作是否可以完成。如果不需要增加任何一个维度,则认为调整大小是有效的。为了避免测试,请将 validate=False 作为参数添加。
cover = resizeimage.resize_cover(image, [200, 100], validate=False)
您还可以使用附加到调整大小函数的 validate 函数创建两步验证然后处理的过程,以测试调整大小的可行性,而不进行验证。在每个调整大小函数上使用点 . 运算符即可使用 validate,例如 resize_cover.validate。
以下示例代码重写了第一个示例,以使用此功能。
from PIL import Image
from resizeimage import resizeimage
with open('test-image.jpeg', 'r+b')
with Image.open() as image:
is_valid = resizeimage.resize_cover.validate(image, [200, 100])
# do something else...
if is_valid:
with Image.open('test-image.jpeg') as image:
resizeimage.resize_cover.validate(image, [200, 100], validate=False)
cover = resizeimage.resize_cover(image, [200, 100])
cover.save('test-image-cover.jpeg', image.format)
请注意,无需对图像进行两次验证,因此我们将 validate=False 传递给 resize_cover.validate。
API 参考
resize_crop(image, size, validate=True)
使用指定大小的中心矩形裁剪图像。
裁剪一个 200x200 的中心正方形图像。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_crop(img, [200, 200])
img.save('test-image-crop.jpeg', img.format)
fd_img.close()
resize_cover(image, size, validate=True, resample=Image.LANCZOS)
调整图像大小以填充指定的区域,根据需要裁剪。这与 CSS background-size: cover 属性具有相同的行为。
调整并裁剪(从中心)图像,使其覆盖 200x100 的矩形。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_cover(img, [200, 100])
img.save('test-image-cover.jpeg', img.format)
fd_img.close()
resize_contain(image, size, validate=True, resample=Image.LANCZOS, bg_color=(255, 255, 255, 0))
调整图像大小,使其可以适应指定的区域,保持比例,不进行裁剪。这与 CSS background-size: contain 属性具有相同的行为。创建一个白色背景边框。
将图像调整到最小尺寸,使其在一个 200x100 的矩形内,同时保持源图像和目标图像之间的比例。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_contain(img, [200, 100])
img.save('test-image-contain.jpeg', img.format)
fd_img.close()
resize_width(image, width, validate=True, resample=Image.LANCZOS)
调整图像大小到指定的宽度,同时调整高度以保持相同的比例。
将图像调整到 200 像素宽度。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_width(img, 200)
img.save('test-image-width.jpeg', img.format)
fd_img.close()
resize_height(image, height, validate=True, resample=Image.LANCZOS)
调整图像大小到指定的宽度,同时调整高度以保持相同的比例。
将图像调整到 200 像素高度。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_height(img, 200)
img.save('test-image-height.jpeg', img.format)
fd_img.close()
resize_thumbnail(image, size, validate=True, resample=Image.LANCZOS)
调整图像大小,同时保持比例,尽可能匹配指定的尺寸。
将图像调整到可以包含在 200 像素正方形内的尺寸。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize_thumbnail(img, [200, 200])
img.save('test-image-thumbnail.jpeg', img.format)
fd_img.close()
resize(method, *args, **kwargs)
使用指定的方法调整图像大小:'crop'、'cover'、'contain'、'width'、'height' 或 'thumbnail'。
from PIL import Image
from resizeimage import resizeimage
fd_img = open('test-image.jpeg', 'r')
img = Image.open(fd_img)
img = resizeimage.resize('thumbnail', img, [200, 200])
img.save('test-image-thumbnail.jpeg', img.format)
fd_img.close()
测试
pip install -r requirements.dev.txt pip install -e . python setup.py test
贡献
python-resize-image 存放在 github.com/VingtCinq/python-resize-image/。
在编码之前,请使用以下命令将 pre-commit 作为 git 钩子安装
cp pre-commit .git/hooks/
然后安装钩子和 pylint
pip install git-pylint-commit-hook pylint
如果您想强制提交(您需要有充分的理由这样做),请使用带有 -n 选项的 commit,例如 git commit -n。
支持
如果您遇到问题,请告诉我们。
许可证
该项目采用 MIT 许可证。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源码分发
构建分发
python-resize-image-1.1.20.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b055dab919d623ece8ec95262d4bdbf006cb1a10e818e9b36221c8b1885f9922 |
|
MD5 | 6f1dfa83c3e718ceb7dbda6326541ac5 |
|
BLAKE2b-256 | ea5ef84b810b290cfd5fb72ffbdd96046f97871db09d26bfcff0353a60cde569 |
python_resize_image-1.1.20-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0977bcf8454949b2d37e56c66d95494146c4d9da295a8f7af8eff43d2c35ca6a |
|
MD5 | adb343c3560bc10fe16824f411eb539f |
|
BLAKE2b-256 | 67447fb293646ed21bab5cfe8d17ec5524214cc51cb9c3ee186704f844583e57 |