首页 > 编程知识 正文

Python如何调整图片的尺寸为中心

时间:2023-11-19 09:36:24 阅读:308107 作者:OUMN

图片尺寸的调整是图片处理中常见的需求之一。在Python中,我们可以使用PIL库(Pillow)来实现对图片尺寸的调整。具体而言,我们可以通过裁剪、压缩和放大等操作来达到调整图片尺寸为中心的目的。

一、使用PIL库调整图片尺寸为中心

1、裁剪图片

PIL库提供了crop()方法来裁剪图片。我们可以通过计算裁剪区域的坐标,将图片裁剪为指定尺寸。

<python>
from PIL import Image

def crop_center(image, new_width, new_height):
    width, height = image.size
    left = (width - new_width) / 2
    top = (height - new_height) / 2
    right = (width + new_width) / 2
    bottom = (height + new_height) / 2
    return image.crop((left, top, right, bottom))

image = Image.open("example.jpg")
new_image = crop_center(image, 500, 500)
new_image.save("new_example.jpg")
</python>

2、压缩图片

可以使用resize()方法来压缩图片的尺寸。通过设置新的宽度和高度,即可实现图片的尺寸调整。

<python>
from PIL import Image

def resize_center(image, new_width, new_height):
    width, height = image.size
    image.thumbnail((new_width, new_height))
    left = (new_width - image.width) / 2
    top = (new_height - image.height) / 2
    right = left + image.width
    bottom = top + image.height
    return image.crop((left, top, right, bottom))

image = Image.open("example.jpg")
new_image = resize_center(image, 500, 500)
new_image.save("new_example.jpg")
</python>

3、放大图片

使用resize()方法,并将目标尺寸设为大于原始尺寸的值,即可实现图片的放大。

<python>
from PIL import Image

def enlarge_center(image, new_width, new_height):
    width, height = image.size
    image.thumbnail((new_width, new_height))
    left = (new_width - image.width) / 2
    top = (new_height - image.height) / 2
    right = left + image.width
    bottom = top + image.height
    return image.crop((left, top, right, bottom))

image = Image.open("example.jpg")
new_image = enlarge_center(image, 800, 800)
new_image.save("new_example.jpg")
</python>

二、其他方式调整图片尺寸为中心

除了使用PIL库,还可以使用其他第三方库如OpenCV来实现图片尺寸的调整。步骤大体与PIL库类似,只需使用对应方法即可。

例如,使用OpenCV可以实现裁剪图片的功能:

<python>
import cv2

image = cv2.imread("example.jpg")
height, width, _ = image.shape

new_width = 500
new_height = 500

left = int((width - new_width) / 2)
top = int((height - new_height) / 2)
right = left + new_width
bottom = top + new_height

new_image = image[top:bottom, left:right]
cv2.imwrite("new_example.jpg", new_image)
</python>

三、总结

通过使用Python的PIL库或其他第三方库,我们可以轻松地实现图片尺寸的调整。无论是裁剪、压缩还是放大,都可以通过计算坐标来将图片调整为中心。希望以上内容对你有所帮助!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。