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 client使用http post 到server端的代码
Feb 10 Python
解读Python中degrees()方法的使用
May 18 Python
不可错过的十本Python好书
Jul 06 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
python 字符串和整数的转换方法
Jun 25 Python
Sanic框架Cookies操作示例
Jul 17 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
在python2.7中用numpy.reshape 对图像进行切割的方法
Dec 05 Python
对Python中实现两个数的值交换的集中方法详解
Jan 11 Python
python机器学习实现决策树
Nov 11 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
用python读取xlsx文件
Dec 17 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+mysql实现无限级分类
2015/11/11 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
JavaScript 解析Json字符串的性能比较分析代码
2009/12/16 Javascript
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
2012/07/31 Javascript
javascript中常用编程知识
2013/04/08 Javascript
js中的时间转换—毫秒转换成日期时间的示例代码
2014/01/26 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
Angular 项目实现国际化的方法
2018/01/08 Javascript
微信小程序开发之左右分栏效果的实例代码
2019/05/20 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
总结Python编程中函数的使用要点
2016/03/20 Python
pandas string转dataframe的方法
2018/04/11 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
设计师大码女装:11 Honoré
2020/05/03 全球购物
市场安全管理制度
2014/01/26 职场文书
30年同学聚会感言
2014/01/30 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
临时工聘用合同协议书
2014/10/29 职场文书
订货会主持词
2015/07/01 职场文书
护理工作心得体会
2016/01/22 职场文书
vue实现同时设置多个倒计时
2021/05/20 Vue.js
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers
Python 文字识别
2022/05/11 Python