本文目录一览:
- 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,这个可以根据自己的情况设定,颜色同样如此。
批量生成图片
上面生成了一张图片,那要生成十张图片呢,这种步骤一样,只是颜色改变的,利用循环就可以解决。首先创建一个颜色列表,把要生成的图片颜色放进去。接着循环获取不同的颜色,保存的时候利用字符串拼接的方法改变图片的名字。
本地生成的图片
封装成函数
前面的方法已经可以批量生成图片了,为了通用性强一点,我们可以封装成函数,把哪些可以改变的参数单独抽离出来。尺寸也同样,使用的时候,可以根据自己的需要定义颜色列表和尺寸。当然还有加一些提示用语和报错兼容性,这里就不讲了。
本地生成的图片