python放大图片和画方格实现算法


Posted in Python onMarch 30, 2018

本文实例为大家分享了python放大图片和画方格的具体代码,供大家参考,具体内容如下

1、Python 放大图片和画方格算法

#!C:/Python27 
# -*- coding: utf-8 -*-  
import os  
import sys  
from PIL import Image,ImageDraw  
   
 
def make_doc_data(lf): 
   
  #li, ri = make_regalur_image(Image.open(lf)), make_regalur_image(Image.open(rf))#两张图片方法 
  li = Image.open(lf) 
   
  size = (256, 256) 
  #几何转变,全部转化为256*256像素大小 
  li =li.resize(size).convert('RGB') 
   
  li.save(lf + '_regalur.png')#转换图片格式:img.save('file.jpg'),保存临时的 
   
  #ri.save(rf + '_regalur.png')#img对象到硬盘 
   
  fd = open('stat.csv', 'w')#stat模块是做随机变量统计的,stat用来计算随机变量的期望值和方差 
   
  #这句是关键啊,把histogram的结果进行map处理  
  #fd.write('\n'.join(l + ',' + r for l, r in zip(map(str, li.histogram()), map(str, ri.histogram()))))   
  fd.write(','.join(map(str, li.histogram())))  
  fd.close() 
  
  li = li.convert('RGB') #与save对象,这是转换格式 
   
  draw = ImageDraw.Draw(li) 
   
  for i in xrange(0, 256, 64):  
    draw.line((0, i, 256, i), fill = '#ff0000')  
    draw.line((i, 0, i, 256), fill = '#ff0000') 
     
  #从始至终划线!通过把每一列刷成红色,来进行颜色的随机分布划分 
     
  #用法:pygame.draw.line(Surface, color, start_pos, end_pos, width=1) 
     
  li.save(lf + '_lines.png')  
  
   
make_doc_data('testpic/1370.bmp')

 2、放大缩小图片的几种方法

#!C:/Python27 
#coding=utf-8 
 
import pytesseract 
from pytesser import * 
from PIL import Image,ImageEnhance,ImageFilter 
import os 
import fnmatch 
import re,time 
 
import urllib, random 
 
#修改文件名 
#os.rename("E:/pythonScript/Model/font/2.bmp","E:/pythonScript/Model/font/dock2.bmp") 
 
 
def CutImg(): 
   
  img = Image.open('.//6907.jpg').convert('L') 
 
  print img.size 
 
  w, h = img.size 
 
      #rowheight = h // rownum 
      #colwidth = w // colnum 
      #imgry.show() 
  j = 10 
  for i in range(4): 
     
 
    x = 10 + i*24 #验证码的x,y坐标 
 
    y = 6  
 
    img.crop((x-4, y,x+6, y+14)).save("pic/%d.bmp" % j)  
 
    print "j=",j  
 
    j += 1 
  img.close() 
 
 
infile = ('.//testpic//001n.bmp')  
outfile = ('.//testpic//001n.png') 
 
   
def fixed_size(infile): 
   
  """按照固定尺寸处理图片"""  
  im = Image.open(infile) 
 
  size = (256, 256) 
   
  im2 =im.resize(size).convert('RGB') 
  out = im2.resize(size,Image.ANTIALIAS)  
  out.save(outfile) 
  print u"\n按固定尺寸放大图片,处理已完成" 
def resize_by_width(w_divide_h): 
   
  """按照宽度进行所需比例缩小"""  
  im = Image.open(infile) 
  print im.size 
   
  (x, y) = im.size   
  x_s = x 
  print x_s 
  y_s = x/w_divide_h #w_divide_h > x 
  print y_s 
  out = im.resize((x_s, y_s), Image.ANTIALIAS)   
  out.save(outfile)  
  
 
def resize_by_height(w_divide_h): 
   
  """按照高度进行所需比例缩放"""  
  im = Image.open(infile) 
  (x, y) = im.size 
  print im.size 
  x_s = y*w_divide_h  
  y_s = y  
  out = im.resize((x_s, y_s), Image.ANTIALIAS)   
  out.save(outfile,quality = 95,dpi=(72, 72)) 
def cut_by_ratio(width, height):  
    """按照图片长宽比进行分割"""  
    im = Image.open(infile)  
    width = float(width)  
    height = float(height)  
    (x, y) = im.size  
    if width > height:  
      region = (0, int((y-(y * (height / width)))/2), x, int((y+(y * (height / width)))/2))  
    elif width < height:  
      region = (int((x-(x * (width / height)))/2), 0, int((x+(x * (width / height)))/2), y)  
    else:  
      region = (0, 0, x, y)  
  
    #裁切图片  
    crop_img = im.crop(region)  
    #保存裁切后的图片  
    crop_img.save(outfile) 
def Lager(size): 
  im = Image.open(infile) 
  im_resized=im.resize(size, Image.ANTIALIAS) 
  im_resized.save(outfile,quality = 95,dpi=(72, 72)) 
def mohuimg(): 
  """ 
  模糊图片 
  """ 
  im = Image.open(infile) 
  im2 = im.filter(ImageFilter.BLUR) 
  im2.save(outfile) 
""" 
多种尺寸icon的存储 
""" 
image_size = [512,250,144,140,128,120,108,100,88,72,48,32,28] 
def create_icon(): 
   for size in image_size: 
     '''''pri_image = Image.open("icon.png") 
     pri_image.thumbnail((size,size)) 
     image_name = "icon_%d.png"%(size) 
     pri_image.save(image_name)''' 
     pri_image = Image.open(infile) 
     pri_image.resize((size,size),Image.ANTIALIAS ).save("testpic/icom_%d.png"%(size))   
    
fixed_size(infile) 
#resize_by_width(10) 
#resize_by_height(1) 
#cut_by_ratio(50,20) 
#Lager(256)   
#mohuimg() 
#create_icon() 
#CutImg()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中stdout输出不缓存的设置方法
May 29 Python
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
python基于phantomjs实现导入图片
May 13 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
利用Python脚本生成sitemap.xml的实现方法
Jan 31 Python
python中模块的__all__属性详解
Oct 26 Python
python输出100以内的质数与合数实例代码
Jul 08 Python
django连接mysql配置方法总结(推荐)
Aug 18 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
解决python 3 urllib 没有 urlencode 属性的问题
Aug 22 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 #Python
简单实现python数独游戏
Mar 30 #Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 #Python
windows环境下tensorflow安装过程详解
Mar 30 #Python
Python切片工具pillow用法示例
Mar 30 #Python
Python实现OpenCV的安装与使用示例
Mar 30 #Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 #Python
You might like
谈谈PHP语法(5)
2006/10/09 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
js图片处理示例代码
2014/05/12 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
Javascript实现飞动广告效果的方法
2015/05/25 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
JavaScript从0开始构思表情插件
2016/07/26 Javascript
vue v-model动态生成详解
2018/06/30 Javascript
详解vantUI框架在vue项目中的应用踩坑
2018/12/06 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
vue动态绘制四分之三圆环图效果
2019/09/03 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
Python在Console下显示文本进度条的方法
2016/02/14 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
《守株待兔》教学反思
2014/03/01 职场文书
公司委托书范本5篇
2014/09/20 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
云冈石窟导游词
2015/02/04 职场文书
在职证明书模板
2015/06/15 职场文书
导游词之日本富士山
2020/01/06 职场文书
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL