python图片处理(入门一)

先上一个代码例子

from PIL import Image
import os,sys

for infile in sys.argv[1:]:#
    print(infile)
    outfile=os.path.splitext(infile)[0]#os.path.splitext(text)是那infile字符串里面的按照名字和拓展名分开的方法
    print(outfile)#出现的outfile就是和拓展名分开的
    outfile+=".png"#把没有拓展名的添上我们希望的拓展名,python会自动转换格式
    print(outfile)
    if infile != outfile:
        try:
            Image.open(infile).save(outfile)#使用Image先打开这个图片,然后用save方法保存
        except IOError:
            print("Error")

这里面我都主要的都注释了,主要看看注释

看看运行结果:

***MacBook-Pro:pyui zhangyongde$ python pic.py /Users/zhangyongde/Desktop/test.jpg
/Users/***/Desktop/test.jpg
/Users/***/Desktop/test
/Users/***/Desktop/test.png

但是如果来源不是标准的拓展的格式的时候,试试下面的方法:

import os, sys
  import Image
#create jpeg thumbnails
  for infile in sys.argv[1:]:
      outfile = os.path.splitext(infile)[0] + ".thumbnail"
      if infile != outfile:
          try:
              im = Image.open(infile)
              im.thumbnail((128, 128))
              im.save(outfile, "JPEG")#调用Save方法
          except IOError:
              print "cannot create thumbnail for", infile

但是这个库不是负责解码的。当你打开一个图片的时候,那么这个时候就会读取他的文件头并且从文件头来决定读入的格式

看看下面这个介绍:

It is important to note is that the library doesn't decode or load the raster data unless itreally has to. When you open a file, the file header is read to determine the file formatand extract things like mode, size, and other properties required to decode the file, butthe rest of the file is not processed until later. 


使用crop方法可以截取图片的一部分出来:

for infile in sys.argv[1:]:
    try:
        im=Image.open(infile)
        print(infile,im.format,"%dx%d"%im.size,im.mode)
    except IOError:
        print("Error")

box=(100,100,400,400)
region=im.crop(box)
print(region)
region.show()

看看效果


这个是原图

我们来看看运行后show的结果


这个就是给定一个元组,然后作为参数传给crop方法来截取元组内给定的部分,得到的图是300X300的图像

 region = region.transpose(Image.ROTATE_180)
      im.paste(region, box)

这个就是把得到的结果反转180度

同时把这个效果粘贴到原图像上面去

得到下面这样的结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值