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

您所在的位置:网站首页 Python获取图片dpi python 读取图片的尺寸、分辨率

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

2023-08-10 12:17| 来源: 网络整理| 查看: 265

#需要安装PIL模块

#encoding=gbk#-------------------------------------------------------------------------------# Name: picRead# Purpose:## Author: wangchao## Created: 27/06/2014# Copyright: (c) wangchao 2014# Licence: #-------------------------------------------------------------------------------from PIL import Imagedef 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,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) if(maxValue > 1024): 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/1024 min = min/value newimg = im.resize((1024,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)[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 |  标签:python  photoshop   |举报 |字号 订阅

            下载LOFTER客户端   新年好,今天是大年初一。 想做一个横板 的过关游戏,没有图片,就用photoshop从别人的游戏截屏中抽了一些图片出来,发现一共有74张图片,每张图片都在一个图层中,听说 photoshop有图层批量导出的功能,很开心。但发现一个问题,就是图片批量导出的时候,会把透明的像素也导出来了。这个第一张图片会有很多空着的透 明像素,好像这个没有办法解决。 废话少说,我们先批量导出所有的图片,方法如下。 python使用PIL库读取图片的像素值 - ♂苹果 - 眼睛想旅行  这里我导出到了桌面上。看一下图片,有一大片空白像素。 python使用PIL库读取图片的像素值 - ♂苹果 - 眼睛想旅行 不知道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/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]),  

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3