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多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
Oct 15 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
Python堆排序原理与实现方法详解
May 11 Python
python 自动去除空行的实例
Jul 24 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
在keras下实现多个模型的融合方式
May 23 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
Feb 07 Python
Python实现生成bmp图像的方法
Jun 13 Python
python语言中pandas字符串分割str.split()函数
Aug 05 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编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
详解React Native 屏幕适配(炒鸡简单的方法)
2018/06/11 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
Python最长公共子串算法实例
2015/03/07 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
使用Python判断一个文件是否被占用的方法教程
2020/12/16 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
2014年合同管理工作总结
2014/12/02 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
餐馆开业致辞
2015/08/01 职场文书
2019毕业典礼主持词!
2019/07/05 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android
了解Kubernetes中的Service和Endpoint
2022/04/01 Servers