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-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有图层批量导出的功能,很开心。但发现一个问题,就是图片批量导出的时候,会把透明的像素也导出来了。这个第一张图片会有很多空着的透 明像素,好像这个没有办法解决。

废话少说,我们先批量导出所有的图片,方法如下。

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

不知道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转换成文本的工具还不如自己写脚本方便来得快

  1. #!/usr/bin/env python
  2. import Image
  3. import sys
  4. im = Image.open(sys.argv[1])
  5. width = im.size[0]
  6. height = im.size[1]
  7. print "/* width:%d */"%(width)
  8. print "/* height:%d */"%(height)
  9. count = 0
  10. for h in range(0, height):
  11. for w in range(0, width):
  12. pixel = im.getpixel((w, h))
  13. for i in range(0,3):
  14. count = (count+1)%16
  15. if (count == 0):
  16. print "0x%02x,/n"%(pixel[i]),
  17. else:
  18. print "0x%02x,"%(pixel[i]),
时间: 2024-08-26 08:02:31

python 读取图片的尺寸、分辨率的相关文章

java读取图片的(尺寸、拍摄日期、标记)等EXIF信息

1.metadata-extractor是 处理图片EXIF信息的开源项目,最新代码及下载地址:https://github.com/drewnoakes/metadata-extractor 2.本demo工程的代码(包含所需的jar包)下载地址:http://files.cnblogs.com/files/haha12/readPic.rar 主要代码如下: package com.test; import java.io.File; import java.io.IOException;

python 读取并显示图片的两种方法

在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. 显示图片 import matplotlib.pyplot as plt # plt 用于显示图片 import matplotlib.image as mpimg # mpimg 用于读取图片 import numpy as np lena = mpimg.imread('lena.png')

网页图片的尺寸、分辨率、物理尺寸的理解。

1.我们通常所说的网页图片大小500*270,是指500px*270px(即图片长和宽上的像素数): 2.分辨率,指的是单位长度(物理长度)上的像素数.(网页图片最常用的分辨率是72 像素/英寸) 3.物理尺寸指的是图片实际外显时的物理尺寸(常用单位厘米或英寸) 三者关系:图片(像素)尺寸=分辨率*物理尺寸: 图片大小:200kb,即图像所占内存大小. (备注:像素不是长度单位,它是虚单位,需要分辨率这个桥梁,才能和实际物理尺寸对应)

用Python更改图片尺寸大小

1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #date: 2014-05-15 #function: 更改图片尺寸大小 import os import os.path from PIL import Image ''' filein: 输入图片 fileout: 输出图片 width: 输出图片宽度 height:输出图片高度 type:输出图片类型(png, gif, jpeg...) ''' def ResizeImage(f

Python读取excel中的图片

Python读取excel中的图片文件,并转成base64 import sys import os import xlrd import zipfile import base64 class ExcelImgRead(object): def change_file_name(self, file_path, old_name, new_type = '.zip'): """ 修改指定目录下的文件类型名 :param file_path: :param old: :par

python 从网络URL读取图片并直接处理的代码

如下代码段是关于python 从网络URL读取图片并直接处理的代码. import urllib2 import Image import cStringIO def ImageScale(url,size): file = cStringIO.StringIO(urllib2.urlopen(url).read()) img = Image.open(file) img.show() 原文地址:http://blog.51cto.com/14142860/2347335

Android中读取图片EXIF元数据之metadata-extractor的使用

一.引言及介绍 近期在开发中用到了metadata-extractor-xxx.jar 和 xmpcore-xxx.jar这个玩意, 索性查阅大量文章了解学习,来分享分享. 本身工作也是常常和处理大图片打交道,摸索摸索也是多多益善. 首先介绍一下什么是EXIF.EXIF是 Exchangeable Image File 的缩写,这是一种专门为数码相机照片设定的格式.这样的格式能够用来记录数字照片的属性信息,如相机的品牌及型号.相片的拍摄时间.拍摄时所设置的光圈大小.快门速度.ISO等信息.除此之

python接收图片变成缩略图

python图像处理库:Pillow初级教程 Image类 Pillow中最重要的类就是Image,该类存在于同名的模块中.可以通过以下几种方式实例化:从文件中读取图片,处理其他图片得到,或者直接创建一个图片. 使用Image模块中的open函数打开一张图片: >>> from PIL import Image >>> im = Image.open("lena.ppm") 如果打开成功,返回一个Image对象,可以通过对象属性检查文件内容 >

python读取mnist

python读取mnist 其实就是python怎么读取binnary file mnist的结构如下,选取train-images TRAINING SET IMAGE FILE (train-images-idx3-ubyte): [offset] [type]          [value]          [description] 0000     32 bit integer  0x00000803(2051) magic number 0004     32 bit integ