from PIL import ImageColor
ImageColor.getcolor('red','RGB') #颜色 模式
ImageColor.getcolor('red','RGBA') #颜色 模式 带透明度
#切换到有图片的目录
%cd IMAGE
from PIL import Image
im = Image.open('ludashi.jpg')#缩略图制作 打开一个图像文件 注意为当路径
print(im.format,im.size,im.mode)#格式,大小,颜色模式
JPEG (900, 600) RGB
w,h = im.size #获得图像大小  分别为 宽  高
print('尺寸:%sx%s'%(w,h))
im.thumbnail((w//2,h//2))#缩放为50%
print('缩放图像大小:%sx%s'%(w//2,h//2))
im.save('ludashi-50.jpg','jpeg') #图像保存格式 为 jpeg
im.show()#显示图片
im_size = im.resize((w//4,h//4)) #调整大小
im_size.save('ludashi-25.jpg')
from PIL import ImageEnhance #增强对比度
enh = ImageEnhance.Contrast(im)
enh.enhance(1.3).show("30%增强对比度")
#裁剪图像
box =(100,100,400,400)
region = im.crop(box)
region.save("ludashi-c.jpe")
#裁剪图像
box =(100,100,400,400)
region = im.crop(box)
region.save("ludashi-c.jpe")
#旋转图像
im.rotate(90).save('ludas-90.jpg')
im.rotate(180).save('luda-180.jpg')
im.rotate(8).save('luda-9.jpg')
#镜像翻转
im.transpose(Image.FLIP_LEFT_RIGHT).save('luda-水平翻转.jpg')
im.transpose(Image.FLIP_TOP_BOTTOM).save('luda-上下翻转.jpg')
#添加水印,

#打开logo文件
logo_file ='logo.png'
im_logo = Image.open(logo_file)#打开文件
logo_w,logo_h = im_logo.size # 获得logo的大小 #打开目标文件
target= 'ludashi.jpg'
im_target = Image.open(target)
target_w,target_h = im_target.size #需要加水印的文件大小 #加水印
im_copy = im_target.copy() #制作副本
im_copy.paste(im_logo,(target_w-logo_w,target_h-logo_h),im_logo) #起始位置 (坐标)
im_copy.save('luda-logo.jpg')#保存
#查看波段和每个像素的颜色值
im.getbands()
im.getpixel((111,1))  #像素坐标
#新建图片  填写文字
from PIL import ImageDraw,ImageFont
im_new = Image.new('RGBA',(400,400),'white') # 颜色模式,大小,底色
pic = ImageDraw.Draw(im_new)
pic.text((50,50),'uge3',fill='red')#坐标 ,内容, 文字颜色
im_new.save('uge3.png')
#新建图片 ,填写文字,处理字体
import os
from PIL import ImageDraw, ImageFont
#fonts_path=r'c:\windows\fonts' #windows系统下字体目录
fonts_path =r'/usr/share/fonts/dejavu' #linux下
font = ImageFont.truetype(os.path.join(fonts_path,'YuGothB.ttc'))
im_new = Image.new('RGBA',(500,500),'white')
pic =ImageDraw.Draw(im_new)
pic.text((50,50),'悠居艺山',fill='black',font=font)# 坐标,内容,颜色,字体
im_new.save('uge3-font-1.png')

最新文章

  1. Linux0.11内核--加载可执行二进制文件之2.change_ldt
  2. Android 摇一摇功能的注意事项
  3. Java运算符的优先级(从高到低)
  4. C# 中var as is 泛型集合
  5. Delphi外挂开发网站
  6. [技术翻译] 构建现代化的Objective-C (下)
  7. Android 真机调试显示offline
  8. C#使用Redis集群缓存
  9. 为什么a标签中使用img后,高度多了几个像素?
  10. 使用Git命令把本地项目上传到github上托管
  11. 设计模式——中介者模式/调停者模式(C++实现)
  12. Mysql锁机制--读锁
  13. Git使用详细教程(3):git add, git commit详解
  14. ES6 块级作用域
  15. 关于JDBC的总结
  16. (转)CSS3之pointer-events(屏蔽鼠标事件)属性说明
  17. cocos2d-x Android(SDK,NDK,JDK,ANT)下载地址
  18. Android FragmentPagerAdapter翻译
  19. Pycharm学习python路
  20. python终端总是无法删除字符

热门文章

  1. JAVA基础知识|java虚拟机(JVM)
  2. Vue路由管理之Vue-router
  3. Qt 的插件制作
  4. lucene正向索引——正向信息,Index –> Segments (segments.gen, segments_N) –> Field(fnm, fdx, fdt) –> Term (tvx, tvd, tvf)
  5. Hive和Hadoop
  6. Chrome接口调试工具
  7. 【集成模型】Bootstrap Aggregating(Bagging)
  8. SQL语句里合并两个select查询结果
  9. QDateTime QString
  10. Python3 中codecs进行文件的读取