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

时间:2022-10-26 15:17:58

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!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、放大缩小图片的几种方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#!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 =
  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 *img():
  """
  模糊图片
  """
  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)  
#*img()
#create_icon()
#CutImg()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_18808965/article/details/73649385