本文目錄一覽:
- 1、如何用Python方法獲取圖片的準確尺寸
- 2、python 怎麼通過 PIL 獲得圖片尺寸
- 3、python PIL如何才能把圖片修改成正方形或者任意尺寸而不產生擠壓
- 4、Python製作一個BMP圖片為什麼不可以超過3W*3W像素,是圖片格式原因么?
- 5、Python 讀取文件夾將裡面的圖片處理成想要的大小並保存在個指定位置
- 6、python處理圖片數據?
如何用Python方法獲取圖片的準確尺寸
先安裝pillow庫
然後運行:
from PIL import Image
img = Image.open(‘圖片路徑’)
print(img.size)
返回的是圖片的 高×寬
python 怎麼通過 PIL 獲得圖片尺寸
from PIL import Image
pic_path = ‘logo_white_ee663702.png’
im = Image.open(pic_path)
# 這樣就可以了
x, y = im.size
print “size: “, x, y
以下為 PIL Image.py 源碼
class Image:
format = None
format_description = None
def __init__(self):
# FIXME: take “new” parameters / other image?
# FIXME: turn mode and size into delegating properties?
self.im = None
self.mode = “”
self.size = (0, 0)
self.palette = None
self.info = {}
self.category = NORMAL
self.readonly = 0
# 可以看到,初始化時有屬性 size
python PIL如何才能把圖片修改成正方形或者任意尺寸而不產生擠壓
改變圖像尺寸有兩類方法:
一是縮放(resize),即重採樣。這時,如果圖像縱橫比發生變化就會導致「擠壓」。
二是裁剪(crop)。當然圖只能越裁越小;不過可以配合縮放,先放大再裁剪。
既然題主要求不能「擠壓」,那就只能裁剪了。函數名我給出來了,具體用法題主自己研究。
Python製作一個BMP圖片為什麼不可以超過3W*3W像素,是圖片格式原因么?
有可能是內存限制,如果你是32位的python那麼創建一個3W*3W的BMP就需要30000 * 30000 * 3(2700000000)這麼大的內存,因為操作系統對進程的內存有限制,所以就不能創建更大的圖片了。
如果使用64位的python有可能會可以創建更大的圖片。python通常使用pillow庫來進行圖片的操作,你可以閱讀一下pillow的代碼,看看創建圖片部分有沒有對大小有限制。
Python 讀取文件夾將裡面的圖片處理成想要的大小並保存在個指定位置
# -*- coding: utf-8 -*-
import cv2
import os
import numpy
import cutHumanFace
def saveCutFace(filePath, pathSave = ‘cutFace’, normalizeWidth = 300, normalizeHeight = 300):
“””
:param filePath: string, 文件夾路徑
“””
if not os.path.exists(savePath):
os.makedirs(savePath); #保存的文件夾
files = os.listdir(filePath); #列出目錄下的所有文件
normalizeWidth = 100 #以100×100為大小
normalizeHeight = 100
for file in files:
normalizeFace = cv2.resize(cutFace, (normalizeWidth,normalizeHeight), interpolation=cv2.INTER_AREA);
cv2.imwrite(savePath, normalizeFace);
python處理圖片數據?
生成一張純色的圖片
先設置圖片的顏色,接著利用Image模塊的new方法新生成一張圖片,png格式的圖片需要設置成rgba,類似的還有rgb,L(灰度圖等),尺寸設定為640,480,這個可以根據自己的情況設定,顏色同樣如此。
批量生成圖片
上面生成了一張圖片,那要生成十張圖片呢,這種步驟一樣,只是顏色改變的,利用循環就可以解決。首先創建一個顏色列表,把要生成的圖片顏色放進去。接著循環獲取不同的顏色,保存的時候利用字元串拼接的方法改變圖片的名字。
本地生成的圖片
封裝成函數
前面的方法已經可以批量生成圖片了,為了通用性強一點,我們可以封裝成函數,把哪些可以改變的參數單獨抽離出來。尺寸也同樣,使用的時候,可以根據自己的需要定義顏色列表和尺寸。當然還有加一些提示用語和報錯兼容性,這裡就不講了。
本地生成的圖片
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256794.html