- 浏览: 2139991 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (401)
- Agile (16)
- Apache Commons (3)
- Architecture (8)
- DB.MongoDB (5)
- DB.Mysql (3)
- DB.Oracle (34)
- DirectoryService (1)
- DotNet (1)
- English (3)
- Groovy (0)
- Html (28)
- Java (67)
- Java.Aixs (7)
- Java.Cache (2)
- Java.jPBM (1)
- Java.Resin (6)
- Java.Spring (4)
- Java.Struts2 (5)
- Java.Tomcat (16)
- Javascript (45)
- Javascript.Google Map (2)
- Javascript.Jquery (8)
- Life (15)
- Maven&Ant (4)
- Network (5)
- OS.Linux (45)
- OS.Windows (10)
- OS.Windows.Office (1)
- PlayFramework (15)
- Python (28)
- Reading notes (11)
- Security (13)
- Server.Apache (3)
- Server.Nginx (7)
- Test (6)
- Tool (15)
- Work.Solution (15)
- Other (20)
- SSO&CAS&Identity (13)
最新评论
-
hutuxiansheng123:
防火墙、Iptables、netfilter/iptables、NAT 概述 -
dacoolbaby:
非常棒的正则表达式,非常适用。万分感谢。
用python分析nginx的access日志 -
loot00:
您好! 我也遇到了相同的错误信息。我是用f_link_lob ...
LOB variable no longer valid after subsequent fetch -
feihangchen:
@OnApplicationStop public clas ...
Play framework 1.2.3 Jobs定时任务、异步任务、引导任务、触发任务、关闭任务 -
洞渊龙王:
谢谢了
www.w3.org被qiang导致logback报错:Connect reset
import os from PIL import Image import images2gif #type 合成GIF分类 #0:图片缩放到最大宽度*最大高度(长方形)、并粘贴到最大宽度*最大高度(长方形)的白色背景图片中、居中后合成 #1:图片缩放到最大长度(正方形)、并粘贴到最大长度(正方形)的白色背景图片中、居中后合成 #2:图片不缩放、并粘贴到最大宽度*最大高度(长方形)的白色背景图片中、居中后合成 #3:图片不缩放、并粘贴到最大长度(正方形)的白色背景图片中、居中后合成 #4:原图直接合成(按宽度排序、不缩放也不粘贴到新的白色背景图片中) #5:原图直接合成(按高度排序、不缩放也不粘贴到新的白色背景图片中) def GetGifAnimationFromImages(targetGifFilePath, srcImageFilePaths, type = 0): #用来合成的图片 images = [] #取得所有图片中最大长度(宽度、高度) maxWidthAndHeight = 1 #最大宽度和高度 maxWidth = 1 maxHeight = 1 #取得图片按宽度从大到小排序的路径顺序 widthAndFilePaths = [] #取得图片按高度从大到小排序的路径顺序 heightAndFilePaths = [] for imageFilePath in srcImageFilePaths: fp = open(imageFilePath, "rb") width,height = Image.open(fp).size widthAndFilePaths.append((width, imageFilePath)) heightAndFilePaths.append((height, imageFilePath)) maxWidth = max(maxWidth, width) maxHeight = max(maxHeight, height) fp.close() maxWidthAndHeight = max(maxWidthAndHeight, maxWidth, maxHeight) #降序排列 widthAndFilePaths.sort(key=lambda item: item[0], reverse=True) heightAndFilePaths.sort(key=lambda item: item[0], reverse=True) if type == 4 or type == 5: #原图直接合成(按宽度排序) if type == 4: for widthAndFilePath in widthAndFilePaths: img = Image.open(widthAndFilePath[1]) images.append(img) #原图直接合成(按高度排序) if type == 5: for heightAndFilePath in heightAndFilePaths: img = Image.open(heightAndFilePath[1]) images.append(img) else: for imageFilePath in srcImageFilePaths: fp = open(imageFilePath, "rb") img = Image.open(fp) width,height = img.size #生成空的白色背景图片 if type == 0 or type == 2: #长方形 imgResizeAndCenter = Image.new("RGB", [maxWidth,maxHeight], (255,255,255)) elif type == 1 or type == 3: #正方形 imgResizeAndCenter = Image.new("RGB", [maxWidthAndHeight,maxWidthAndHeight], (255,255,255)) if type == 0: #宽度/最大宽度>=高度/最大高度,使用小的缩放比例 if maxWidth / width >= maxHeight / height: resizeImg = img.resize((width * maxHeight / height, maxHeight),Image.ANTIALIAS) imgResizeAndCenter.paste(resizeImg, ((maxWidth - width * maxHeight / height)/ 2,0)) else: resizeImg = img.resize((maxWidth, height * maxWidth / width),Image.ANTIALIAS) imgResizeAndCenter.paste(resizeImg, (0,(maxHeight - height * maxWidth / width)/ 2)) if type == 1: #宽度>=高度,按宽度缩放到最大长度 if width >= height: resizeImg = img.resize((maxWidthAndHeight, height * maxWidthAndHeight / width),Image.ANTIALIAS) imgResizeAndCenter.paste(resizeImg, (0,(maxWidthAndHeight - height * maxWidthAndHeight / width)/ 2)) else: resizeImg = img.resize((width * maxWidthAndHeight / height, maxWidthAndHeight),Image.ANTIALIAS) imgResizeAndCenter.paste(resizeImg, ((maxWidthAndHeight - width * maxWidthAndHeight / height)/ 2, 0)) elif type == 2: imgResizeAndCenter.paste(img, ((maxWidth - width) / 2,(maxHeight - height) / 2)) elif type == 3: imgResizeAndCenter.paste(img, ((maxWidthAndHeight - width) / 2,(maxWidthAndHeight - height) / 2)) # #保存缩放居中后的图片 # imgResizeAndCenter.convert("RGB").save(os.path.dirname(imageFilePath) + os.sep + "ResizeAndCenter" + os.path.basename(imageFilePath), 'jpeg') images.append(imgResizeAndCenter) fp.close() images2gif.writeGif(targetGifFilePath, images, duration=1, nq=0.1) #取得目录下面的文件列表 def GetDirImageList(dir_proc, recusive = True): resultList = [] for file in os.listdir(dir_proc): if os.path.isdir(os.path.join(dir_proc, file)): if (recusive): resultList.append(GetDirImageList(os.path.join(dir_proc, file), recusive)) continue resultList.append(os.path.join(dir_proc, file)) return resultList if __name__ == "__main__": GetGifAnimationFromImages(r"D:\hecheng.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\c.jpg"]) GetGifAnimationFromImages(r"D:\hecheng1.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\b.jpg", r"D:\c.jpg"], 1) GetGifAnimationFromImages(r"D:\hecheng2.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\c.jpg"], 2) GetGifAnimationFromImages(r"D:\hecheng3.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\c.jpg"], 3) GetGifAnimationFromImages(r"D:\hecheng4.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\c.jpg"], 4) GetGifAnimationFromImages(r"D:\hecheng5.gif", [r"D:\a.jpg", r"D:\b.jpg", r"D:\c.jpg"], 5) GetGifAnimationFromImages(r"D:\hechengTest.gif", GetDirImageList(r"D:\GifMarker"), type = 4)
- images2gif.rar (8.7 KB)
- 下载次数: 293
评论
2 楼
boygirl
2011-01-07
图像的色调会改变吗?跟原来一样不
1 楼
lerous
2010-12-21
高手~ 请帮忙看个问题
-分析图像数据的问题
http://www.iteye.com/problems/55830
-分析图像数据的问题
http://www.iteye.com/problems/55830
发表评论
-
python sftp&ftp&ssh2
2012-03-06 11:29 10784ftp使用内置模块from ftplib import FTP ... -
python 子进程Subprocess & windows cmd当前目录和python当前目录的区分
2012-03-05 10:28 10921maven命令执行的时候,需要先到project目录,然后再执 ... -
用python分析nginx的access日志
2011-04-13 13:52 15002项目正式发布后,有需求要分析下nginx的access日志内容 ... -
(转)python 函数参数的传递(参数带星号的说明)
2011-03-18 15:09 1379转自 andylin02的博客 python中函数参数的传递 ... -
ConfigParser读取记事本修改后的配置文件出错问题解决
2010-12-23 10:42 13012使用ConfigParser来读取系统配置文件,当把py2ex ... -
LOB variable no longer valid after subsequent fetch
2010-12-01 10:50 5493cx_oracle读取oracle wm_concate函数操 ... -
pydev打包后的程序运行报【没有找到 MSVCP71.dll】的错误
2010-11-19 11:44 1729今天把用pydev打包后的程序放到一台新的Windows 20 ... -
客户端机器TCP端口被占满导致mysql报Can't connect to MySQL server on 'computername' (10048)
2010-11-17 16:22 5554用python程序读取csv数据,然后通过MySQLdb模块插 ... -
Python WindowsError
2010-10-28 10:02 11098WindowsError: [Error 2] The sy ... -
PIL使用过程中的异常处理
2010-10-22 14:45 19472IOError: cannot identify image ... -
用python给文件夹下所有图片进行缩放处理
2010-10-20 17:17 6124#! /usr/bin/env python # -* ... -
http代理测速程序
2010-10-18 16:45 6351从网上找到很多代理地址,用来访问目标网站,访问目标网站速度不一 ... -
python连接oracle
2010-09-29 13:39 8213windows下使用python连接oracle(10.2.0 ... -
python处理csv数据
2010-09-26 15:33 37229import csv #从文件读取 reader ... -
python文件夹复制
2010-09-25 14:58 5291需求:复制1个10多个G的文件夹(另外机器共享过来的文件夹,里 ... -
windows下python包chardet安装说明&python第三方包安装卸载
2010-09-19 10:59 2609BeautifulSoup使用过程中需要使用到chardet来 ... -
用py2exe安装python windows服务
2010-09-17 16:29 5865使用模块:pywin32,py2exe #运行安装程序 ... -
Python generator和yield
2010-09-11 20:55 3679generator产生器:a Python generator ... -
python gc回收和性能优化
2010-09-11 20:31 2902psyco 脚本的执行效率多少有点差强人意,虽然优化 ... -
pydev插件配置
2010-09-07 17:08 2649通过 Eclipse 插件下载功能安装完成后, Pyde ...
相关推荐
第3章 图形技术 3.1 绘制图形 实例104 绘制正弦曲线 实例105 绘制蜗牛曲线 实例106 绘制贝塞尔曲线 实例107 画图程序 实例108 绘制立体模型 ...实例151 使用GDI+显示GIF动画 实例152 使用GDI+实现图像格式转换
播放,支持多张图片合成动画播放。播放Gif时候不要频繁暂停和播放动画,容易导致线程阻塞。 LayeredTextBox:Layered模式下的文本编辑器。支持水印文字设置 LayeredTrackBar:进度条控件,支持图片进度条定义 ...
播放,支持多张图片合成动画播放。播放Gif时候不要频繁暂停和播放动画,容易导致线程阻塞。 LayeredTextBox:Layered模式下的文本编辑器。支持水印文字设置 LayeredTrackBar:进度条控件,支持图片进度条定义 ...
第二种是集合模式(模式2),该模式下会建立一个图片集合,每次打开的图片将自动加入这个列表中,图片可重复,支持目录嵌套。 搜索图像技巧:首先切换到模式二,然后打开我的电脑选中图片文件所在盘,再拖动到软件...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
LayeredPictureBox:支持Gif播放,支持多张图片合成动画播放。播放Gif时候不要频繁暂停和播放动画,容易导致线程阻塞。 LayeredTextBox:Layered模式下的文本编辑器。支持水印文字设置 LayeredTrackBar:进度条...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...
GIF动画制作工具 GiftedMotion GiftedMotion是一个很小的,免费而且易于使用图像互换格式动画是能够设计一个有趣的动画了一系列的数字图像。使用简便和直截了当,用户只需要加载的图片和调整帧您想要的,如位置,...