批量修改图片(共5篇)
批量修改图片 篇1
微软Office组件之一的Power Point功能实用, 操作简单、功能齐全、其易上手等特点在教育、企事业单位中成为常用软件之一, 为了增加演示的直观和生动性, 往往会在PPT中插入大量的图片, 如何快速、准确地将文件夹中的图片插入到PPT (每张幻灯片中对应一张图片) 并批量设置图片的大小和位置是日常工作中时常遇到的问题。对于少量张数的图片按常规做法逐一添加并设置相应的图片大小调整其位置不会花太多时间, 但对于大量图片的处理按这种常规方法实属非常繁琐、耗时的工作。该文针对这一问题, 利用相册功能以及VBA编写程序来实现批量插入图片和批量设置图片大小和位置, 可在1分钟之内完成。
1 VBA简介
VBA (Visual Basic for Applications) 是由微软开发的新一代标准宏语言, 有要能用来扩展Windows的应用程式功能, 特别是Microsoft Office软件。它提供了面向对象的程序设计方法和相当完整的程序语言, 并采用与Visual Vasic完全相同的编程环境。VBA以其强大的开发功能与易用性相结合, 体现了独特优越的编程思想, 已有来自23个不同行业的一百余家独立软件厂商宣布, 将VBA集成到他们开发的应用程序中, 包括著名的Autodesk、Adobe等[1~2]。
2 操作方法
2.1 基本思路
首先新建一个文件夹存放所有的图片, 再利用PPT的“相册”功能将该文件中的图片导入到PPT, 最后用VBA程序实现批量修改图片大小和位置。
2.2 具体流程
1) 新建一个文件夹 (本例中命名“示例图片”) , 用于存放所有的图片 (图片名称不必按一定顺序命名) 。
2) 打开Power Point (本例中PPT版本为2010) , 选择“插入/相册/新建相册”, 显示“相册”对话框, 如图1所示。
3) 用鼠标点击“相册”对话框中的“文件/磁盘”, 出来“插入新图片”对话框, 找到“示例图片”文件夹所在文件目录, 用鼠标框选所有图片 (或按ctrl+A) , 再用鼠标点击“插入新图片”中的“插入”按钮 (图1) 。此时界面如图2所示 (在此对话框可以对图片进行前后顺序、图片亮度、灰度、图片版式等的简单操作) , 然后点用鼠标点击“相册”对话框中的“创建”。随后会自动创建一个新的相册PPT (图3) , 将相册PPT中第一张幻灯片删除, 此时实现了批量插入图片。
4) 选择“视图/宏”, 显示“宏”对话框, 输入宏名 (本例中为Image Edite) , 然后点击“创建” (图4) , 此时会显示VBA窗口 (按Alt+F11也可以调出VBA窗口) 。
5) 在VBA代码窗口中输入以下程序 (图5) 。可以根据自己的实际需要修改里面的大小位置参数值。
6) 选择菜单栏上“运行/运行子过程/用户窗体”运行程序 (或按F5运行程序) 。运行后, 实行了批量修改图片的大小和位置 (图6) 。
3 结束语
Power Point在用户的使用过程中, 加上VBA的协助, 效果十分明显, 能大幅度提高用户的工作效率, 并降低了人工错误出现的概率。对于不会VBA程序的用户, 只需按照文中程序操作即可实现本例中的功能。此处只介绍了PPT与VBA相结合的一个很小的示例, 相信大家如果深入学习编程技术, 会在实际运用中能想到更多更实用性的与VBA相结合的实例。
摘要:Microsoft PowerPoint是微软公司的办公软件Microsoft Office的重要核心组件之一, 在日常的工作中被广泛的使用。VBA作为一种宏语言, 可以扩展PPT的功能, 大大提高了用户的工作效率, 该文介绍通过PPT的相册功能实现批量导入图片并用VBA批量设置图片大小和位置。
关键词:PowerPoint,相册,VBA,批量修改图片
参考文献
[1]孙敬杰.Excel VBA入门与实例演[M].北京:中国青年出版社, 2005.
[2]北京博彦科技发展有限责任公司.Office VBA编程高手[M].北京:北京大学出版社, 2000.
批量修改图片 篇2
摘要:
最近在制作手册的时候遇到了一个问题‘文档乱码‘,查看文件之后发现文件编码不对,总共100多个文件,如果用编辑器另存为utf8,那就悲催了。所以自己就写了个程序,批量修改文件编码格式。
代码:
代码如下:
/**
* 修改文件编码格式,例如:GBK转UTF8
* 支持多级目录
* @param {String} [root_path] [需要进行转码的文件路径]
* @param {Array} [file_type] [需要进行转码的文件格式,比如html文件]
* @param {String} [from_code] [文件的编码]
* @param {String} [to_code] [文件的目标编码]
*/
// 引入包
var fs = require(‘fs‘),
iconv = require(‘iconv-lite‘);
// 全局变量
var root_path = ‘./html‘,
file_type = [‘html‘, ‘htm‘],
from_code = ‘GBK‘,
to_code = ‘UTF8‘;
/**
* 判断元素是否在数组内
* @date 2015-01-13
* @param {[String]} elem [被查找的元素]
* @return {[bool]} [description]
*/
Array.prototype.inarray = function(elem) {
”use strict“;
var l = this.length;
while (l--) {
if (this[l] === elem) {
return true;
}
}
return false;
};
/**
* 转码函数
* @date 2015-01-13
* @param {[String]} root [编码文件目录]
* @return {[type]} [description]
*/
function encodeFiles(root) {
”use strict";
var files = fs.readdirSync(root);
files.forEach(function(file) {
var pathname = root + ‘/‘ + file,
stat = fs.lstatSync(pathname);
if (!stat.isDirectory()) {
var name = file.toString();
if (!file_type.inarray(name.substring(name.lastIndexOf(‘.‘) + 1))) {
return;
}
fs.writeFile(pathname, iconv.decode(fs.readFileSync(pathname), from_code), {
encoding: to_code
}, function(err) {
if (err) {
throw err;
}
});
} else {
encodeFiles(pathname);
}
});
}
encodeFiles(root_path);
小结:
上面的程序支持多级目录,同一个文件不能进行多次操作,否则又会出现乱码,
完整代码:github.com/baixuexiyang/coding,你可以fork到自己的账号下,如果有bug请在issue上提。
批量提取文档中图片 篇3
在Office Image Exporter的主界面上单击左下角的“选择文件夹”,在弹出窗口中选择输出目录,当然也可以在“输出目录”后面手工输入图片的保存路径。
然后单击“打开”按钮,在弹出窗口中的“文件类型”一栏中,选择要打开的文件类型,目前支持Word、PPT和PDF三种常见的办公文档,再选择要提取图片的Office文档,单击“打开”即可。
然后在“输出文件名”下面输入图片的文件名的固定部分,并选择要输出的图片文件格式,目前支持JPEG、BMP、PNG、TIFF等几种常见的图片格式,再单击界面中的“提取”按钮开始提取(如图),会看到左侧的图片显示栏中有图片闪烁,这些图片就是当前文档里的图片,完成后再到前面设置的保存目录里就可看到被软件提取的原始图像文件了。文件名以前面输入的文件名的固定部分加数字序号依次命名,另外注意在提取过程中需要占用不少资源,所以最好在提取前先关闭其他耗资源的程序,这样提取速度会更快一些。
图片文件批量重命名探讨 篇4
关键词:批量处理EXCEL,VBA
引言
在办公自动化(OA)的过程中,我们经常要从数码照相机(DC)里读出许多照片。但这些照片的大小、尺寸和自动生成的文件名并不符合要求,我们必须对其进行处理。处理有两种情况:一种是改变照片的尺寸和文件大小,另一种是对一个甚至很多文件夹里的文件(照片)进行改名。
通常,我们可以选择ACDSee、Photoshop、Fireworks等软件来处理,而其中ACDSee不但可以进行简单的图片编辑,还可以用模板或者替换来批量改名。但ACDSee的这种改名是建立在某种规则的基础上,而面对一些改名前后毫无规律的文件名,也显得有点无能为力。
本文给出了一种批量改名方法:利用Excel表格作为临时“容器”,用于存放源文件名和目录文件名,然后利用VBA进行改名。实践证明,用这种方法对文件进行批量改名,效果良好,提高了工作效率。
1 批量给图片改尺寸
批量给图片改尺寸可以利用ACDSee (8.0)的工具-“改变大小”进行批量处理(图1)。在调整文件长宽数值的过程中,还可以选择JPEG的压缩比率,对文件大小进行控制。但其对文件大小的控制没有Photoshop和Fireworks那么精确。如果对文件大小比较敏感,可以选择Photoshop的“存储为Web通用格式”,压缩率80%就可以将大小控制为原来的一半。
2 批量给图片进行重命名
2.1 ACDSee对图片的重命名
如右图,ACDSee可以选择两种方法对文件进行批量重命名:模板、搜索和替换。其中在模板里可以使用“*号”做为原始文件名,“#号”做为模板的规律出现部分,可用数字或字母进行替换;在搜索和替换里可以对规律性重复的文件名如“更改大小”的字眼进行过滤或替换。
2.2 利用Excel VBA对图片文件名进行批量处理
如果要改成的文件名比较不规则,则用ACDSee就没那么简单了。我们可以利用VBA将某文件夹里的所有文件名读入到Excel表格的A列;然后将A列的文件名当作字符串,利用Excel公式进行处理后放入B列,使之符合要求;最后利用VBA的Name命令来对图片文件改名。
为了让VBA程序“自动”识别某文件夹下的所有文件,下面的程序用了一个通用对话框打开文件(OpenFile),判断用户选择的文件,将去掉路径后的文件名填入Excel的A列。程序还可以通过设置Filter属性来选择某一类型的文件。
'//按钮1的功能为将所选文件的文件名填入Excel工作薄Sheet1表的A列
File Filter:=“All Files, *.*, Files, *.jpg”, _'设置过滤器为'所有文件'和'jpg文件'两种
在得到了源文件名后,我们利用Excel文本处理公式对A列的文件名进行处理后填入B列,使之符合要求。然后我们就可以利用VBA的Name语句进行改名。
重命名命令Name的格式如下:
Name源文件名As目标文件名
为了达到“批量”处理的目的,VBA程序必然要使用循环。根据Name命令的格式,在循环之前,我们必须取得源文件名和目标文件名。在将源文件名和目标文件名放入A、B两列后,循环自然就简单了。
下面的程序利用循环对文件进行批量改名:
'//在对A列的文件名进行处理放入B列后,将A列内容作源文件名、B列内容作目标文件名
'//按扭2利用循环进行改名
Private Sub CommandButton2_Click ()
Dim i, c As Integer
If Cells (1, 2) =“”Then'检测B1单元格是否为空,若空,退出本过程
Msg Box“目标文件名不能为空!”
Exit Sub
End If
c=Excel.WorksheetFunction.CountA (Range (“a:a”) ) '//计算A列中的文件名数量,赋值给变量c
Dim CurPath As String
CurPath=Cells (1, 3) '//将C1单元格内容作为当前路径
For i=1 To c
Scr Name=CurPath&Cells (i, 1) '//当前完整源文件名
Dst Name=CurPath&Cells (i, 2) '//改名后的完整目标文件名
Name Scr Name As Dst Name'//重命名命令
Next i
Msg Box“共替换了”&i-1&“个文件名!”对话框提示改名文件数,也可用变量c表示
End Sub
3 实验及效果分析
如全国中小学教师教育技术水平考试(NTET)要求报名照片的文件名为“身份证号+姓名”格式,现有ACDSee等软件无法创建规则。这种情况下,我们利用以上两段VBA代码进行了批量重命名,在较短的时间里较好地完成了任务。实践证明,本文所述对图片等文件重命名的运行速度比ACDSee等软件要快。
4 结束语
ACDSee批量重命名的方法是建立在规律性的基础上的,充满着序列性。只要改名后的文件名符合一定规律,用户可以自己编写重命名模板来完成。而对于改名后无规律文件名,本文提出了一种简单易行的批量重命名的方法,无须借助现有软件,无需创建命名规则,只需要在Excel里处理好目标文件名,就可以省力省心地批量重命名了。其实本方法不光可以处理图片文件,也可以重命名任何文件。当然,VBA作为Excel函数功能的补充,远没有达到应用软件的层次,要做成集重命名、图片编辑等完整功能于一体的软件还有待进一步研究。
参考文献
[1]ExcelHome.Excel实战技巧精粹.2007.
[2]Excel之家论坛.http://Club.excelhome.net2006~2008.
另辟蹊径批量统一图片尺寸 篇5
设想:对页面的边距进行手工调整,然后批量插入图片,这样就可以自动调整所插入图片的尺寸。
第1步:限制页边距
打开Word2013,切换到“页面布局”选项卡,点击“页面设置”功能组的“页边距”按钮,在这里选择“自定义页边距”,或者直接点击“页面设置”右侧的斜箭头按钮,打开“页面设置/页边距”对话框,在这里调整“左”和“右”的页边距,这一尺寸显然决定了图片最终的宽度大小,例如统一调整为“1.5厘米”,按照同样的步骤对“上”和“下”边距进行调整,这一尺寸决定了图片最终的高度大小,例如同样调整为“1.5厘米”。
第2步:插入图片