python 读取图片的尺寸、分辨率
#需要安装PIL模块
#encoding=gbk
#-------------------------------------------------------------------------------
# Name: picRead
# Purpose:
#
# Author: wangchao
#
# Created: 27/06/2014
# Copyright: (c) wangchao 2014
# Licence: <your licence>
#-------------------------------------------------------------------------------
from PIL import Image
def main():
filename = 'Z:/360pic/116_0618/IMGP3828.JPG'
img = Image.open(filename)
imgSize = img.size #图片的长和宽
print imgSize
maxSize = max(imgSize) #图片的长边
print maxSize
minSize = min(imgSize) #图片的短边
print minSize
if __name__ == '__main__':
main()
判断图片分辨率并修改
# -*- coding: utf- -*-
import os,sys,Image
rootDir = r'c:\\images'
targetDir = r'c:\\imagesover'
def encodeChinese(msg):
type = sys.getfilesystemencoding()
return msg.decode('UTF-8').encode(type)
errFile = open(r'c:\\errFile.txt','w')
def judgeSize(im):
#判断图片分辨率,如果最大边超过1024返回False,如果不超过返回True
mySize = im.size
maxValue = max(mySize)
minValue = min(mySize)
):
return False
else:
return True
def returnSize(im):
#返回图片大小,返回两个值,第一个返回值总为最大
max,min = im.size
if max > min:
return max,min
else:
return min,max
def changeSize(im,max,min):
value = max/
min = min/value
newimg = im.resize((,min),Image.ANTIALIAS)
return newimg
def main():
for parent,dirnames,filenames in os.walk(rootDir):
for filename in filenames:
fName = filename
filename = parent + os.sep + filename
fPostfix = os.path.splitext(filename)[]
try:
img = Image.open(filename)
except:
print filename
print encodeChinese('打开这个文件出错')
continue
#img.load()
print filename
print fPostfix
if(fPostfix !='.jpg' and fPostfix !='.png' and fPostfix != '.JPG' and fPostfix != '.PNG'):
errFile.write(str(filename) + '\\n')
errFile.write(encodeChinese('上面这个文件不是图片,请检查...') + '\\n')
errFile.write('\\n')
else:
print 'juageSize()'
if(judgeSize(img) == False):
print 'judgeSize == False'
max,min = returnSize(img)
newimg = changeSize(img,max,min)
newimg.save(targetDir + os.sep + fName)
print str(targetDir + os.sep + fName)
print encodeChinese('保存完毕')
print encodeChinese('处理完毕')
errFile.close()
main()

这里我导出到了桌面上。看一下图片,有一大片空白像素。

不知道photoshop有没有能不能批量导出没有透明像素的图片。反正我没有找到,我只能用最最老土的方法了。就是用python来对导出的图片分析。删除我们不要的透明像素。下边是使用python读取图片像素值的方法。
用image模块,可以用getpixel获得像素值,给你个例子吧。得到的像素值应该是(R,G,B,A),大家读读看每个图片是什么。#!/usr/bin/env python import Image import sys im = Image.open(sys.argv[1]) width = im.size[0] height = im.size[1] print "/* width:%d */"%(width) print "/* height:%d */"%(height) count = 0 for h in range(0, height): for w in range(0, width): pixel = im.getpixel((w, h)) for i in range(0,3): count = (count+1)%16 if (count == 0): print "0x%02x,/n"%(pixel[i]), else: print "0x%02x,"%(pixel[i]),
这样我们就可以遍历整个图片像素了,在其中找出我们图片像素不是透用的区域,然后使用下边的方法把图片截取出来并保存:
一个使用pil制作验证码的方法:
用python把图片像素点数据转换成文本
工作中要把bmp图片的数据转换成数组放到uboot代码中,因为有几张图片,使用bin转换成文本的工具还不如自己写脚本方便来得快
- #!/usr/bin/env python
- import Image
- import sys
- im = Image.open(sys.argv[1])
- width = im.size[0]
- height = im.size[1]
- print "/* width:%d */"%(width)
- print "/* height:%d */"%(height)
- count = 0
- for h in range(0, height):
- for w in range(0, width):
- pixel = im.getpixel((w, h))
- for i in range(0,3):
- count = (count+1)%16
- if (count == 0):
- print "0x%02x,/n"%(pixel[i]),
- else:
- print "0x%02x,"%(pixel[i]),
python 读取图片的尺寸、分辨率的更多相关文章
- Python读取图片尺寸、图片格式
Python读取图片尺寸.图片格式 需要用到PIL模块,使用pip安装Pillow.Pillow是从PIL fork过来的Python 图片库. from PIL import Image im = ...
- 利用Python读取图片exif敏感信息
众所周知,现在很多的照相机等软件,拍摄会有选项,是否包含位置信息等. 当然有的人会说,我在微信中查看图片exif信息并没有啊,这是因为你发送到微信服务器的时候,微信帮你完成了保密工作. 常见的图片中包 ...
- java读取图片的(尺寸、拍摄日期、标记)等EXIF信息
1.metadata-extractor是 处理图片EXIF信息的开源项目,最新代码及下载地址:https://github.com/drewnoakes/metadata-extractor 2.本 ...
- Python读取图片,并保存为矩阵
from scipy.misc import imread,imshow img = imread('D:test.bmp') print img[:,:,2].shape imshow() 注意im ...
- Python中Opencv和PIL.Image读取图片的差异对比
近日,在进行深度学习进行推理的时候,发现不管怎么样都得不出正确的结果,再仔细和正确的代码进行对比了后发现原来是Python中不同的库读取的图片数组是有差异的. image = np.array(Ima ...
- python 读取并显示图片的两种方法
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...
- python 修改、读取图片元数据
图片元数据 图片元数据(metadata)是嵌入到图片文件中的一些标签.比较像文件属性,但是种类繁多.常见的几种标准有: EXIF:通常被数码相机在拍摄照片时自动添加,比如相机型号.镜头.曝光.图片尺 ...
- Python读取excel中的图片
作为Java程序员,Java自然是最主要的编程语言.但是Java适合完成大型项目,对于平时工作中小的工作任务,需要快速完成,易于修改和调试,使用Java显得很繁琐,需要进行类的设计,打成jar包,出现 ...
- python 读取文件夹下的图片进行处理
python的os模块中有一个listdir函数可以遍历读取文件夹下的文件. import os for filename in os.listdir(r"./file"): #l ...
随机推荐
- Apache和Nginx下禁止访问特定的目录或文件
大家是否测试Apache做了目录禁止浏览后,目录下面的txt文件还是可以显示里面的内容的.例如:http://www.domain.com/test/此访问会报403错误,但是如果test下有很多tx ...
- angularJS友好URL实现 good
nginx部署 angularjs时的rewrite问题 使用h5+angularjs完成了一个项目 此项目在正式环境上使用nginx做webserver 此项目的入口在微信/微博分享中 由于分享时的 ...
- java 利用java运行时的方法得到当前屏幕截图的方法(转)
将截屏图片保存到本地路径: package com.test; import java.awt.AWTException; import java.awt.Dimension; import java ...
- android在ubuntu中编译为.apk资料
android在ubuntu中编译为.apk文件 今天我在ubuntu环境之下将android程序编译为.apk文件,特将其过程写下来: 1. 在windows环境下使用MyEclipse编辑好and ...
- DescribingDesign Patterns 描述设计模式
DescribingDesign Patterns 描述设计模式 How do we describe design patterns?Graphical notations, while impor ...
- c 中有关打印*,字符的题目集
#include<stdio.h> //1.打印* void priStar() { printf("输入一个整数\n"); int num; scanf(" ...
- 我的Python成长之路---第四天---Python基础(14)---2016年1月23日(寒风刺骨)
一.生成器和迭代器 1.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. ...
- Spring+EhCache缓存实例(详细讲解+源码下载)(转)
一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider.Ehcache是一种广泛使用的开源Java分布式 ...
- G-Sensor 校准标准
在桌面上水平平,自己的前表面. 此时Z轴应+值,和值至9.8大约,x.y轴应0值大约.它是平行于主体x轴,固定的左,提起右侧时,,x轴数值它应0开始增加.直到垂直时,+9.8大约. 为y轴.下面固定. ...
- DeDeCMS中如何实现下拉菜单
在5.7版本,已经有比较简单的方法实现下拉菜单,我们可以用它已有方法,也可以用我写的第二种方法来实现 1. 在需要下拉菜单的地方加入以下代码 <div id="navMenu" ...