新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python如何實現(xiàn)圖像等比縮放
說明

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比黃龍網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式黃龍網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋黃龍地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
1、初始化目標尺寸的幕布,所有值都是一樣的。
2、計算出放縮比例。
把原圖中較長的邊放縮到目標尺寸大小.
3、使短邊也能按此比例放縮,得到的圖片就不會變形。
4、縮放后的圖像必須小于等于目標尺寸。
因此必須能夠粘貼在幕布的中心,這樣幕布中沒有被覆蓋的地方就會自動變成留白,省去了填充步驟。
5、得到想要的圖片。
實例
import numpy as np
from PIL import Image
def resize(img, size):
# 先創(chuàng)建一個目標大小的幕布,然后將放縮好的圖片貼到中央,這樣就省去了兩邊填充留白的麻煩。
canvas = Image.new("RGB", size=size, color="#7777")
target_width, target_height = size
width, height = img.size
offset_x = 0
offset_y = 0
if height > width: # 高 是 長邊
height_ = target_height # 直接將高調(diào)整為目標尺寸
scale = height_ / height # 計算高具體調(diào)整了多少,得出一個放縮比例
width_ = int(width * scale) # 寬以相同的比例放縮
offset_x = (target_width - width_) // 2 # 計算x方向單側(cè)留白的距離
else: # 同上
width_ = target_width
scale = width_ / width
height_ = int(height * scale)
offset_y = (target_height - height_) // 2
img = img.resize((width_, height_), Image.BILINEAR) # 將高和寬放縮
canvas.paste(img, box=(offset_x, offset_y)) # 將放縮后的圖片粘貼到幕布上
# box參數(shù)用來確定要粘貼的圖片左上角的位置。offset_x是x軸單側(cè)留白,offset_y是y軸單側(cè)留白,這樣就能保證能將圖片填充在幕布的中央
return canvas
img= Image.open('1.jpg')
target__size=(500,300) # 目標尺寸:寬為500,高為300
res = resize(img,target__size)
res.save('new.jpg')以上就是python實現(xiàn)圖像等比縮放的方法,希望對大家有所幫助。更多Python學習指路:創(chuàng)新互聯(lián)python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
名稱欄目:創(chuàng)新互聯(lián)Python教程:python如何實現(xiàn)圖像等比縮放
文章URL:http://www.fisionsoft.com.cn/article/cocoegj.html


咨詢
建站咨詢
