簡體   English   中英

Python PIL - 調整圖像大小

[英]Python PIL - Resize Images

我正在嘗試使用 PIL 更改圖像的大小,將較大的圖像轉換為較小的圖像,反之亦然。 我做了各種測試,但我無法得到我想要的結果。 以下是我對 900x1600 圖像所做的測試:

每次輸入相同:圖像

size = (1080, 1080)
userImage = Image.open("./Images/UsersImages/001.png")
userImage.resize(size)
userImage.show()
size = (1080, 1080)
userImage = Image.open("./Images/UsersImages/001.png")
userImage.thumbnail(size, Image.ANTIALIAS)
userImage.show()
userImage = Image.open("./Images/UsersImages/001.png")
userImageWidth, userImageHeight = userImage.size

leftBorder = 4
topBorder = userImageHeight / 5
rightBorder = 154
bottomBorder = 3 * userImageHeight / 5
userImage = userImage.crop((leftBorder, topBorder, rightBorder, bottomBorder))

newsize = (1080, 1080)
userImage = userImage.resize(newsize)
userImage.show()
userImage = Image.open("./Images/UsersImages/001.png")
userImageWidth, userImageHeight = userImage.size
    
if userImageWidth > 1080:
    bottomBorder = (userImageWidth - 1080) / 2
    topBorder = bottomBorder
else:
    bottomBorder, topBorder = 0, 0

if userImageHeight > 1080:
    leftBorder = (userImageHeight - 1080) / 2
    rightBorder = leftBorder
else:
    leftBorder, rightBorder = 0, 0

userImage = userImage.crop((leftBorder, topBorder, rightBorder, bottomBorder))
userImage.show()

在大多數情況下,照片與以前完全相同。 在作物的情況下,它被切得很小。

如何將任何圖像調整為 1080x1080? 我不在乎照片是否被拉伸。 重要的是,任何類型的圖像,無論大小,都被調整為 1080x1080。

使用userImage = userImage.resize(size) ,因為resize()返回圖像的副本,resized; 它不會主動調整圖像大小。

size = (1080, 1080)
userImage = Image.open(f"./Images/UsersImages/001.png")
userImage = userImage.resize(size) ### EDITED LINE
userImage.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM