- 浏览: 2159224 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (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 10840ftp使用内置模块from ftplib import FTP ... -
python 子进程Subprocess & windows cmd当前目录和python当前目录的区分
2012-03-05 10:28 10957maven命令执行的时候,需要先到project目录,然后再执 ... -
用python分析nginx的access日志
2011-04-13 13:52 15068项目正式发布后,有需求要分析下nginx的access日志内容 ... -
(转)python 函数参数的传递(参数带星号的说明)
2011-03-18 15:09 1404转自 andylin02的博客 python中函数参数的传递 ... -
ConfigParser读取记事本修改后的配置文件出错问题解决
2010-12-23 10:42 13146使用ConfigParser来读取系统配置文件,当把py2ex ... -
LOB variable no longer valid after subsequent fetch
2010-12-01 10:50 5545cx_oracle读取oracle wm_concate函数操 ... -
pydev打包后的程序运行报【没有找到 MSVCP71.dll】的错误
2010-11-19 11:44 1762今天把用pydev打包后的程序放到一台新的Windows 20 ... -
客户端机器TCP端口被占满导致mysql报Can't connect to MySQL server on 'computername' (10048)
2010-11-17 16:22 5599用python程序读取csv数据,然后通过MySQLdb模块插 ... -
Python WindowsError
2010-10-28 10:02 11140WindowsError: [Error 2] The sy ... -
PIL使用过程中的异常处理
2010-10-22 14:45 19537IOError: cannot identify image ... -
用python给文件夹下所有图片进行缩放处理
2010-10-20 17:17 6160#! /usr/bin/env python # -* ... -
http代理测速程序
2010-10-18 16:45 6405从网上找到很多代理地址,用来访问目标网站,访问目标网站速度不一 ... -
python连接oracle
2010-09-29 13:39 8237windows下使用python连接oracle(10.2.0 ... -
python处理csv数据
2010-09-26 15:33 37271import csv #从文件读取 reader ... -
python文件夹复制
2010-09-25 14:58 5332需求:复制1个10多个G的文件夹(另外机器共享过来的文件夹,里 ... -
windows下python包chardet安装说明&python第三方包安装卸载
2010-09-19 10:59 2647BeautifulSoup使用过程中需要使用到chardet来 ... -
用py2exe安装python windows服务
2010-09-17 16:29 5923使用模块:pywin32,py2exe #运行安装程序 ... -
Python generator和yield
2010-09-11 20:55 3705generator产生器:a Python generator ... -
python gc回收和性能优化
2010-09-11 20:31 2940psyco 脚本的执行效率多少有点差强人意,虽然优化 ... -
pydev插件配置
2010-09-07 17:08 2680通过 Eclipse 插件下载功能安装完成后, Pyde ...
相关推荐
"giftool" 是一个在线平台,专为用户提供了将一组静态图片合并成动态GIF动画的功能。这个工具对于那些需要快速、便捷地制作动图的个人或者设计师来说非常实用。通过上传一系列图片帧,用户可以轻松创建出具有视觉...
【描述】中提到的"多张财神图片合成gif动画",这意味着开发者使用JavaScript将一系列静态的财神图片序列组合成一个连续播放的动画效果。这种技术在网页设计中常见,用于创建各种吸引人的视觉元素,如广告、提示信息...
4. **动画制作**:合成GIF涉及将多张图像串联起来形成动画。用户可以导入一组静态图像,然后按照所需的顺序和间隔设定来创建动画效果。 5. **优化技巧**:由于GIF文件大小的限制,了解如何优化GIF以保持质量和文件...
本文将深入探讨如何在Java中实现这样的功能,包括如何在图像上写入数字以及如何将一系列帧合成一个动画GIF。 首先,我们需要理解GIF的基本原理。GIF是一种支持多帧的图像格式,每帧可以视为一个静态图像,通过按...
"Gif_Image.rar_GIFimage_image gif_imagej gif_图片 合成GIF"这个标题揭示了我们讨论的主题是关于如何将多个静态图片合并成一个动态的GIF动画。下面将详细介绍GIF图片的特性、制作GIF动画的方法以及可能涉及的工具...
3. **创建GIF动画**:初始化一个`GIF89a`对象,这将是最终的GIF动画容器。你可以设置动画的全局参数,如背景色、循环次数等。 4. **添加帧**:遍历所有要转换的图片文件,将每一张图片作为一帧添加到GIF动画中。...
“用数张图片合成GIF动画”则是指软件的另一项核心功能——图片序列合成。用户可以导入多张静态图片,这些图片通常需要按照特定顺序排列,软件会将它们合并成一个连续播放的动画。这在制作动画故事、演示过程或者...
这款软件旨在为用户提供一个便捷的平台,实现从构思到完成GIF动画的全过程。 【描述】"GIF动画制作,可以轻松地制作GIF动画" 提示我们,这款软件具有用户友好的界面和强大的功能,让即使是初学者也能快速上手。无论...
标题中的“图片压缩包合成器.rar”表明这是一个用于合并图片并进行压缩的工具,很可能是一个使用易语言编写的源代码程序。易语言是一种简洁、直观的中文编程语言,旨在降低编程难度,让更多人能理解并编写程序。 ...
在压缩包子文件的文件名称列表中,“GIF动画制作工具 V3.0.4.0”很可能就是这个gif合成工具的程序文件,版本号3.0.4.0表示这是该软件的第三个主要版本,第四次次要更新。通常,版本号的增加意味着软件的功能得到了...
2. **创建ImageSequence**:将所有`BufferedImage`对象放入一个列表,表示gif的帧序列。 3. **创建ImageWriter**:使用`ImageIO.getImageWritersByFormatName("gif")`获取GIF格式的`ImageWriter`实例。 4. **设置...
然后,编写一个PHP脚本,实例化`GIFEncoder`类,传递帧列表、延迟时间、循环选项等参数,并调用其方法来生成GIF动画。 总结来说,生成GIF动画的PHP方法涉及以下几个步骤: 1. 检查GD库是否可用。 2. 准备静态帧图像...
在JavaScript编程中,实现多张图片合成的GIF动画特效是一项常见的需求,特别是在网页动态效果设计中。这个特效代码能够将多张静态图片合并成一个动态的GIF图像,为用户提供一种有趣且吸引人的视觉体验。下面我们将...
【标题】:“做gif图片工具”是一个专门设计用于创建GIF动态图像的软件。在IT领域,GIF(Graphics Interchange Format)是一种流行的文件格式,它支持有限的动画效果,适用于在网络上传输简短的动画片段。这款工具的...
总的来说,`GIF动态图片PictyreEx源码`是一个基于MFC的GIF动态图片处理组件,它使用了GDI+进行图形渲染,并通过`PictyreEx.h` 和 `PictyreEx.cpp`两个文件实现了GIF的解析、绘制和动画播放功能。对于学习MFC编程、...
Gifcon32是一款专为广告设计者和营销人员打造的软件,它能够帮助用户将多张静态图片合并成富有动感的GIF动画,极大地提升了广告创意的表现力。 Gifcon32的核心功能在于其强大的图片处理和动画合成能力。这款软件...
通过这些功能,用户可以将一系列图片合成一个连续播放的动画,以形成具有动态效果的GIF演示。 制作GIF演示的过程一般包括以下步骤: 1. **规划内容**:确定演示的主题和每个帧要表达的信息。 2. **准备素材**:收集...
1. **批处理模式**:用户可以一次性导入多个PNG序列帧,工具会自动按照文件命名顺序进行排序并合成动画,大大提高了工作效率。 2. **参数设置**:工具通常提供多种参数供用户自定义,如帧速率、循环次数、背景色等...
以下是一个简单的Python脚本示例,用于将一组图片合成GIF: ```python import imageio import os # 定义图片文件夹路径和输出GIF文件名 image_folder = 'path/to/your/images' output_gif = 'output.gif' # 获取...
在提供的压缩包文件名称列表中,我们可以看到一个名为"BatchImageConvert.exe"的文件。这很可能是这个图像转换工具的可执行程序。用户只需运行这个程序,按照界面提示选择待转换的PNG文件,设置输出格式、尺寸调整和...