python生成效果图(python如何制作缩略图)
类别:脚本大全 浏览量:1718
时间:2021-10-09 00:14:27 python生成效果图
python如何制作缩略图本文实例为大家分享了python制作缩略图的具体代码,供大家参考,具体内容如下
|
import cv2 #导入opencv模块 from tkinter import * #导入tkinter模块 from tkinter import ttk #tkinter最新的主题部件 from pil import image #初始化模块 root = tk() root.title( 'pt' ) root.geometry( '600x300' ) #查找图片路径,成功则显示图片 def searchpicture(): location = locofpicture.get() img = cv2.imread(location) cv2.imshow( "image" ,img) #生成缩略图 def setpicture(): # 获取图片路径 location = locofpicture.get() # 对图片进行操作 im = image. open (location) im.thumbnail(( int (heightofpicture.get()), int (widthofpicture.get()))) im.save(nameofimg.get(), '.jpg" alt="python生成效果图(python如何制作缩略图)" border="0" /> label1 = ttk.label(root,text = '选择图片' ) label2 = ttk.label(root,text = '长:' ) label3 = ttk.label(root,text = '宽:' ) label4 = ttk.label(root,text = '文件名' ) #存储输入框中输入的变量 locofpicture = stringvar() heightofpicture = stringvar() widthofpicture = stringvar() nameofimg = stringvar() entry1 = ttk.entry(root,textvariable = locofpicture,width = 50 ) entry2 = ttk.entry(root,textvariable = heightofpicture,width = 10 ) entry3 = ttk.entry(root,textvariable = widthofpicture,width = 10 ) entry4 = ttk.entry(root,textvariable = nameofimg,width = 25 ) button1 = ttk.button(root,text = '确定' ,command = searchpicture) button2 = ttk.button(root,text = '确定生成' ,command = setpicture) #进行界面布局 label1.grid(column = 0 ,row = 0 ) entry1.grid(column = 1 ,row = 0 ,columnspan = 3 ) button1.grid(column = 4 ,row = 0 ) label2.grid(column = 0 ,row = 1 ) entry2.grid(column = 1 ,row = 1 ) label3.grid(column = 2 ,row = 1 ) entry3.grid(column = 3 ,row = 1 ) entry4.grid(column = 1 ,row = 2 ,columnspan = 2 ) button2.grid(column = 3 ,row = 2 ) root.mainloop() |
效果图:
小编再分享一段代码:
|
#!/usr/bin/env python #coding=utf-8 ''' created on 2012-6-2 @author: fatkun ''' import image import os import sys import glob import time def make_thumb(path, thumb_path, size): """生成缩略图""" img = image. open (path) width, height = img.size # 裁剪图片成正方形 if width > height: delta = (width - height) / 2 box = (delta, 0 , width - delta, height) region = img.crop(box) elif height > width: delta = (height - width) / 2 box = ( 0 , delta, width, height - delta) region = img.crop(box) else : region = img # 缩放 thumb = region.resize((size, size), image.antialias) base, ext = os.path.splitext(os.path.basename(path)) filename = os.path.join(thumb_path, '%s_thumb.jpg" alt="python生成效果图(python如何制作缩略图)" border="0" /> print filename # 保存 thumb.save(filename, quality = 70 ) def merge_thumb(files, output_file): """合并图片""" imgs = [] width = 0 height = 0 # 计算总宽度和长度 for file in files: img = image. open ( file ) if img.mode ! = 'rgb' : img = img.convert( 'rgb' ) imgs.append(img) if img.size[ 0 ] > width: width = img.size[ 0 ] height + = img.size[ 1 ] # 新建一个白色底的图片 merge_img = image.new( 'rgb' , (width, height), 0xffffff ) cur_height = 0 for img in imgs: # 把图片粘贴上去 merge_img.paste(img, ( 0 , cur_height)) cur_height + = img.size[ 1 ] merge_img.save(output_file, quality = 70 ) if __name__ = = '__main__' : root_path = os.path.abspath(os.path.dirname(__file__)) img_path = os.path.join(root_path, 'img' ) thumb_path = os.path.join(img_path, 'thumbs' ) if not os.path.exists(thumb_path): os.makedirs(thumb_path) # 生成缩略图 files = glob.glob(os.path.join(img_path, '*.jpg" alt="python生成效果图(python如何制作缩略图)" border="0" /> begin_time = time.clock() for file in files: make_thumb( file , thumb_path, 90 ) end_time = time.clock() print ( 'make_thumb time:%s' % str (end_time - begin_time)) # 合并图片 files = glob.glob(os.path.join(thumb_path, '*_thumb.jpg" alt="python生成效果图(python如何制作缩略图)" border="0" /> merge_output = os.path.join(thumb_path, 'thumbs.jpg" alt="python生成效果图(python如何制作缩略图)" border="0" /> begin_time = time.clock() merge_thumb(files, merge_output) end_time = time.clock() print ( 'merge_thumb time:%s' % str (end_time - begin_time)) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/Bopeiod/article/details/51816392
您可能感兴趣
- dedecms标签使用(DEDECMS 自动缩略图无法生成问题的解决方法)
- dedecms无缩略图怎么设置(DEDECMS转移data目录后 验证码不显示解决办法)
- php去水印方法(PHP开发的文字水印,缩略图,图片水印实现类与用法示例)
- dedecms首页布局(dedecms实现列表页缩略图随机调用的方法)
- python生成效果图(python如何制作缩略图)
- dedecms导航条调用(dede调用其他栏目的文章或者缩略图列表且有分页效果的方法)
- dedecms怎么在根目录外生成文件夹(dedecms 5.6 缩略图按大小比例缩小裁剪)
- dede常用变量(dede调用文章第一张图片非缩略图的实现方法)
- dedecms缩略图路径(DedeCMS图集中缩略图不显示的解决方法)
- dedecms标签缩略图问题(dedecms文章内页获取缩略图的调用标签)
- pythonimage库(Python/Django后端使用PIL Image生成头像缩略图)
- dedecms缩略图优化教程(织梦DedeCMS V5.7缩略图站内上传修正)
- dedecms自定义分页(详解DEDECMS缩略图标签[field:picname/]和[field:litpic/]的区别)
- thinkphp 多维度展示数据(Thinkphp自定义生成缩略图尺寸的方法)
- dedecms 产品缩略图(织梦DedeCms v5.6/5.7 新图集页面增加图片下载功能)
- Visual Studio代码缩略图
- 成都轨道交通19号线二期全线电通(成都轨道交通19号线二期全线电通)
- 19号线二期全线电通 轨道交通项目最新进展来了(19号线二期全线电通)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
热门推荐
- Visual Studio 编译中活动平台AnyCPU
- docker开源软件(5款超好用的开源 Docker工具强烈推荐)
- nginx负载均衡与动静分离(Nginx配置之实现多台服务器负载均衡)
- 腾讯云服务器安装需要什么(免费的云服务器怎么申请?腾讯云服务器的申请流程)
- linux怎么设置php代码(linux Cron定时执行带参数的PHP代码)
- SQL Server 批量导入数据的方法
- python异常信息处理(Python使用修饰器进行异常日志记录操作示例)
- css浮动布局和盒子(css 盒模型 文档流 几种清除浮动的方法实例详解)
- 块级元素水平垂直居中
- php解读三重境界(PHP 观察者模式深入理解与应用分析)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9