python 读取图片的尺寸、分辨率,,#需要安装PIL模块


#需要安装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-8 -*-import os,sys,ImagerootDir = 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)    if(maxValue > 1024):        return False    else:        return Truedef returnSize(im):    #返回图片大小,返回两个值,第一个返回值总为最大    max,min = im.size    if max > min:        return max,min    else:        return min,maxdef changeSize(im,max,min):    value = max/1024    min = min/value    newimg = im.resize((1024,min),Image.ANTIALIAS)    return newimgdef 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)[1]            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()

python使用PIL库读取图片的像素值

2015-02-20 01:59:11|分类: Python |标签:pythonphotoshop |举报 |字号订阅

技术分享技术分享下载LOFTER客户端新年好,今天是大年初一。想做一个横板 的过关游戏,没有图片,就用photoshop从别人的游戏截屏中抽了一些图片出来,发现一共有74张图片,每张图片都在一个图层中,听说 photoshop有图层批量导出的功能,很开心。但发现一个问题,就是图片批量导出的时候,会把透明的像素也导出来了。这个第一张图片会有很多空着的透 明像素,好像这个没有办法解决。废话少说,我们先批量导出所有的图片,方法如下。技术分享这里我导出到了桌面上。看一下图片,有一大片空白像素。技术分享不知道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]),
这样我们就可以遍历整个图片像素了,在其中找出我们图片像素不是透用的区域,然后使用下边的方法把图片截取出来并保存: box = (100,100,500,500)#设置要拷贝的区域,这是我们找到的有像素的区域。 #将im表示的图片对象拷贝到region中,大小为(400*400)像素。这个region可以用来后续的操作(region其实就是一个Image对象),box变量是一个四元组(左,上,右,下)。 region = im.crop(box)region.save( "fileout.png" )下边是一个不错的教程。 http://onlypython.group.iteye.com/group/wiki/1371-python-graphics-library-pil-python-image-library-introduction另一个教程:http://www.blogjava.net/Skynet/archive/2009/11/28/303986.html一个使用pil制作验证码的方法:http://ju.outofmemory.cn/entry/34825

用python把图片像素点数据转换成文本

分类: Android好文 Linux Shell_script Android原创 python 2010-07-13 11:28 7177人阅读 评论(0) 收藏 举报 python脚本工具工作im

工作中要把bmp图片的数据转换成数组放到uboot代码中,因为有几张图片,使用bin转换成文本的工具还不如自己写脚本方便来得快

#!/usr/bin/envpythonimportImageimportsysim=Image.open(sys.argv[1])width=im.size[0]height=im.size[1]print"/*width:%d*/"%(width)print"/*height:%d*/"%(height)count=0forhinrange(0,height):forwinrange(0,width):pixel=im.getpixel((w,h))foriinrange(0,3):count=(count+1)%16if(count==0):print"0x%02x,/n"%(pixel[i]),else:print"0x%02x,"%(pixel[i]),

python 读取图片的尺寸、分辨率

相关内容

    暂无相关文章

评论关闭