身为一个APP开发者,对一张图片批量裁剪是刚需,尤其对于iOS APP来讲,如果美工不给力,那你就得嗝屁。而且现在我们只用PS 单张处理图片,很费时间。既然UI/前端/后端都是难兄难弟 ,那么就要我们祭出法宝了。。。

在此提供 JS脚本(脚本真是个好东西),可以对单张JPG 和PNG 图片批量处理,快速裁剪出不同尺寸,有Windows 版本和OS X版本(对网上的一些代码做了修改,确保切实可用,参考链接如下:http://coolketang.com/psscript/menu8lesson12.php,吐槽一下,既然公布了代码最好保证能用,不然很浪费别人的时间的,这些提供代码的童鞋虽然是好心,但是责任心却不敢恭维)。

(按链接中的代码生成的图片质量大小会超过Photoshop 要求的4G,其实是因为提供的换算关系比例不准确)

步骤:

一:下载本文下方提供的  .jsx文件,放到桌面就行;或者新建一个空白文档,把代码考进去,然后把后缀改为 .jsx;

二:打开Photoshop

三:接着依次点击[文件] > [脚本] > [浏览],打开刚刚保存的脚本文件

四:在弹出的[载入]窗口中,直接双击脚本名称,Photoshop将直接调用并执行该脚本

五:点击选择一张1024*1024尺寸的图标作为原始图

六:选择一个 所有尺寸图标导出后存放的文件夹。然后点击[确定]按钮,确认文件夹的选择

七:这时 Photoshop开始批量生成各尺寸的图标,该文件夹下如下图所示:

八:修改尺寸:

*双击打开.jsx 文件(打开工具能用就行,不必纠结于那个)

*注意:

{“name":"这里是图片名称"  ,  "size":0.987654320987654320/28* 你想要的尺寸 }

如下图所示:

*这里 以iOS 开发的iPhone  icon 尺寸为例:

倍数     :   2x              3x

20pt     :  40pt       60pt

29pt   :    58pt       87pt

40pt :    80pt        120pt

60pt :    120pt     180pt

一共有:(40、58、60、80、87、120、180 )   7种尺寸

.jsx 代码修改如下:

生成文件如下:

//-------------------------脚本文件和代码---------------------------------

1:生成 批量JPEG 图片   脚本代码

//调用[File]的[openDialog]命令,弹出文件选择窗口,提示用户选择1024*1024尺寸的图标,并将文件存储在变量[bigIcon]中。var bigIcon = File.openDialog("请选择一张大小合适的图片:", "*.jpg", false);//打开用户选择的图标文件,并将打开后的文档,赋予变量[pngDoc]。var pngDoc = open(bigIcon, OpenDocumentType.PNG);//调用[Folder]的[selectDialog]命令,弹出文件夹选择窗口,提示用户选择输出iOS图标的文件夹。
//并将文件夹存储在变量[destFolder]中。
var destFolder = Folder.selectDialog( "请选择一个输出的文件夹:");//定义一个数组,这个数组由各种js对象组成,每个对象都有一个[name]属性和[size]属性,分别表示图标的名称的尺寸。
var icons =
[{"name": "28",               "size":0.987654320987654320},//size(精度为) 0.987654320987654320 显示图片大小为28 ;精度为1 显示也是28 ,不过不准确{"name": "1",               "size":0.987654320987654320/28},{"name": "Icon-Small-28",              "size":0.987654320987654320},{"name": "Icon",                      "size":0.987654320987654320/28*57},{"name": "Icon@2x",                  "size":0.987654320987654320/28*114},{"name": "Icon-72",                  "size":0.987654320987654320/28*72},{"name": "Icon-72@2x",               "size":0.987654320987654320/28*144},{"name": "Icon-Small-50",           "size":0.987654320987654320/28*50},{"name": "Icon-Small-50@2x",        "size":0.987654320987654320/28*100},{"name": "Icon-40",                  "size":0.987654320987654320/28*40},{"name": "logo-76",                  "size":0.987654320987654320/28*76},{"name": "logo-80",                  "size":0.987654320987654320/28*80},{"name": "logo-100",                "size":0.987654320987654320/28*100},{"name": "logo-120",                "size":0.987654320987654320/28*120},{"name": "logo-152",                "size":0.987654320987654320/28*152},{"name": "1024",                    "size":0.987654320987654320/28*1024}];//(1)定义一个变量[option],表示iOS输出的格式为PNG。并设置输出PNG时不执行PNG8压缩,以保证图标质量。
//var option = new PNGSaveOptions();
//option.PNG8 = false;//(2)输出 JPEG 格式
var option = new JPEGSaveOptions();
//保存当前的历史状态,以方便缩放图片后,再返回至最初状态的尺寸。
var startState = pngDoc.historyStates[0];//添加一个循环语句,用来遍历所有图标对象的数组。
for (var i = 0; i < icons.length; i++)
{//定义一个变量[icon],表示当前遍历到的图标对象。var icon = icons[i];//调用[pngDoc]对象的[resizeImage]方法,将原图标,缩小到当前遍历到的图标对象定义的尺寸。???pngDoc.resizeImage(icon.size, icon.size);//宽高//定义一个变量[destFileName],表示要导出的图标的名称。//(1.1)//  var destFileName = icon.name + ".png";//(1.2)var destFileName = icon.name + ".jpg";//if (icon.name == "iTunesArtwork")// if (icon.name == "Icon-Small")// {//    destFileName = icon.name;// }//定义一个变量[file],表示图标输出的路径。var file = new File(destFolder + "/" + destFileName);//调用[pngDoc]的[saveAs]方法,将缩小尺寸后的图标导出到指定路径。pngDoc.saveAs(file, option, true, Extension.LOWERCASE);//将[doc]对象的历史状态,恢复到尺寸缩放之前的状态,即恢复到1024*1024尺寸,为下次缩小尺寸做准备。pngDoc.activeHistoryState = startState;
}//操作完成后,关闭文档。
pngDoc.close(SaveOptions.DONOTSAVECHANGES);

2:生成 批量PNG 图片 脚本代码

//调用[File]的[openDialog]命令,弹出文件选择窗口,提示用户选择1024*1024尺寸的图标,并将文件存储在变量[bigIcon]中。var bigIcon = File.openDialog("请选择一张大小合适的图片:", "*.png", false);//打开用户选择的图标文件,并将打开后的文档,赋予变量[pngDoc]。var pngDoc = open(bigIcon, OpenDocumentType.PNG);//调用[Folder]的[selectDialog]命令,弹出文件夹选择窗口,提示用户选择输出iOS图标的文件夹。
//并将文件夹存储在变量[destFolder]中。
var destFolder = Folder.selectDialog( "请选择一个输出的文件夹:");//定义一个数组,这个数组由各种js对象组成,每个对象都有一个[name]属性和[size]属性,分别表示图标的名称的尺寸。
var icons =
[{"name": "28",               "size":0.987654320987654320},//size(精度为) 0.987654320987654320 显示图片大小为28 ;精度为1 显示也是28 ,不过不准确{"name": "1",               "size":0.987654320987654320/28},{"name": "Icon-Small-28",              "size":0.987654320987654320},{"name": "Icon",                      "size":0.987654320987654320/28*57},// 28* 后面的数字即为你要的尺寸,0.98765432098765432为楼主辛苦算出的精度,可满足一般工作制图的任意精度要求。{"name": "Icon@2x",                  "size":0.987654320987654320/28*114},{"name": "Icon-72",                  "size":0.987654320987654320/28*72},{"name": "Icon-72@2x",               "size":0.987654320987654320/28*144},{"name": "Icon-Small-50",           "size":0.987654320987654320/28*50},{"name": "Icon-Small-50@2x",        "size":0.987654320987654320/28*100},{"name": "Icon-40",                  "size":0.987654320987654320/28*40},{"name": "logo-76",                  "size":0.987654320987654320/28*76},{"name": "logo-80",                  "size":0.987654320987654320/28*80},{"name": "logo-100",                "size":0.987654320987654320/28*100},{"name": "logo-120",                "size":0.987654320987654320/28*120},{"name": "logo-152",                "size":0.987654320987654320/28*152},{"name": "1024",                    "size":0.987654320987654320/28*1024}];//(1)定义一个变量[option],表示iOS输出的格式为PNG。并设置输出PNG时不执行PNG8压缩,以保证图标质量。
var option = new PNGSaveOptions();
//option.PNG8 = false;
//option.PNG8 = true;//有的图片 反而大了 默认是true
option.PNG24 = true;//质量压缩格式
//(2)输出 JPEG 格式
//var option = new JPEGSaveOptions();//保存当前的历史状态,以方便缩放图片后,再返回至最初状态的尺寸。
var startState = pngDoc.historyStates[0];//添加一个循环语句,用来遍历所有图标对象的数组。
for (var i = 0; i < icons.length; i++)
{//定义一个变量[icon],表示当前遍历到的图标对象。var icon = icons[i];//调用[pngDoc]对象的[resizeImage]方法,将原图标,缩小到当前遍历到的图标对象定义的尺寸。???pngDoc.resizeImage(icon.size, icon.size);//宽高//定义一个变量[destFileName],表示要导出的图标的名称。//(1.1)var destFileName = icon.name + ".png";//(1.2)//  var destFileName = icon.name + ".jpg";// if (icon.name == "28")//{//  destFileName = icon.name;//}//定义一个变量[file],表示图标输出的路径。var file = new File(destFolder + "/" + destFileName);//调用[pngDoc]的[saveAs]方法,将缩小尺寸后的图标导出到指定路径。pngDoc.saveAs(file, option, true, Extension.LOWERCASE);//将[doc]对象的历史状态,恢复到尺寸缩放之前的状态,即恢复到1024*1024尺寸,为下次缩小尺寸做准备。pngDoc.activeHistoryState = startState;
}//操作完成后,关闭文档。
pngDoc.close(SaveOptions.DONOTSAVECHANGES);0.98765432098765432为楼主辛苦算出的精度,可满足一般工作制图的任意精度要求。{"name": "Icon@2x",                  "size":0.987654320987654320/28*114},{"name": "Icon-72",                  "size":0.987654320987654320/28*72},{"name": "Icon-72@2x",               "size":0.987654320987654320/28*144},{"name": "Icon-Small-50",           "size":0.987654320987654320/28*50},{"name": "Icon-Small-50@2x",        "size":0.987654320987654320/28*100},{"name": "Icon-40",                  "size":0.987654320987654320/28*40},{"name": "logo-76",                  "size":0.987654320987654320/28*76},{"name": "logo-80",                  "size":0.987654320987654320/28*80},{"name": "logo-100",                "size":0.987654320987654320/28*100},{"name": "logo-120",                "size":0.987654320987654320/28*120},{"name": "logo-152",                "size":0.987654320987654320/28*152},{"name": "1024",                    "size":0.987654320987654320/28*1024}];//(1)定义一个变量[option],表示iOS输出的格式为PNG。并设置输出PNG时不执行PNG8压缩,以保证图标质量。
var option = new PNGSaveOptions();
//option.PNG8 = false;
//option.PNG8 = true;//有的图片 反而大了 默认是true
option.PNG24 = true;//质量压缩格式
//(2)输出 JPEG 格式
//var option = new JPEGSaveOptions();//保存当前的历史状态,以方便缩放图片后,再返回至最初状态的尺寸。
var startState = pngDoc.historyStates[0];//添加一个循环语句,用来遍历所有图标对象的数组。
for (var i = 0; i < icons.length; i++)
{//定义一个变量[icon],表示当前遍历到的图标对象。var icon = icons[i];//调用[pngDoc]对象的[resizeImage]方法,将原图标,缩小到当前遍历到的图标对象定义的尺寸。???pngDoc.resizeImage(icon.size, icon.size);//宽高//定义一个变量[destFileName],表示要导出的图标的名称。//(1.1)var destFileName = icon.name + ".png";//(1.2)//  var destFileName = icon.name + ".jpg";// if (icon.name == "28")//{//  destFileName = icon.name;//}//定义一个变量[file],表示图标输出的路径。var file = new File(destFolder + "/" + destFileName);//调用[pngDoc]的[saveAs]方法,将缩小尺寸后的图标导出到指定路径。pngDoc.saveAs(file, option, true, Extension.LOWERCASE);//将[doc]对象的历史状态,恢复到尺寸缩放之前的状态,即恢复到1024*1024尺寸,为下次缩小尺寸做准备。pngDoc.activeHistoryState = startState;
}//操作完成后,关闭文档。
pngDoc.close(SaveOptions.DONOTSAVECHANGES);

两段代码基本一样,只是修改了 选择的图片的后缀。

注意:

1.在苹果电脑的OS X 系统下,两段代码可以串用,即 生成PNG 图片的代码:可以选择JPEG图片生成PNG格式,也可以选PNG 生成PNG;生成JPEG(或JPG) 图片的代码:可以选择JPEG图片生成JPEG格式,也可以选PNG 生成JPEG。 在选择图片的时候会有两种格式的图片供你选择。

2.在Windows系统下,代码不可串用,选择JPEG 的JS脚本,只会有JPEG的图片供你选择,PNG格式同理。你可以把:

var bigIcon = File.openDialog("请选择一张大小合适的图片:", "*.png", false);

改为

var bigIcon = File.openDialog("请选择一张大小合适的图片:", "", false);

这样就可以出现多种格式图片了。

脚本文件下载地址,(CSDN上传资源必须选择资源分,不能免费,下次我传百度网盘)

PNG :

http://download.csdn.net/download/ws1836300/10047497

JPEG:

http://download.csdn.net/download/ws1836300/10047497

如有不懂,请留言。

PhotoShop: 对一张图片进行 不同尺寸 批量裁剪相关推荐

  1. mfc让图片与按钮一起_对许多张图片进行批量裁剪,看看我是如何快速做到的

    概要:当我们需要对很多图片进行批量裁剪时,以往的办法是自己一张一张图片去操作,非常麻烦.有没有这样一个工具,能够帮我们批量进行处理呢?之前小编在网上找了非常多的软件,一个一个地安装试用,都不符合我想要 ...

  2. ImageMagick将多张图片拼接成一张图片_批量裁剪图片、拼接长图、添加水印不想打开ps,你可以试试这款软件...

    工作中的需求常会遇到,批量处理一些图片,比如添加水印.压缩图片大小.批量裁剪等需求,ps可能没办法完成批量的操作,下面这款软件由一位摄影师开发,功能包括了图片加水印.长图拼接.富文本制图.尺寸调整.图 ...

  3. 这个方法,可以实现图片批量裁剪尺寸

    大家在日常的生活或工作中,有没有遇到需要将大量图片进行裁剪的情况?一般面对这种难题,你们是选择如何去应对的呢?估计有大部分小伙伴选择最传统的方法,就是对图片一张一张的进行手动修改,但这也太费时费力了! ...

  4. (十八)视频换-脸、无训练高速换-脸、一张图片即可完成、批量处理

    (十八)最新批量视频换脸.无训练高速换脸.一张图片即可完成.批量处理 本文结合最新的AI模型实现人脸融合,效果得到很好提升.本模型使用多尺度编码器提取原图属性特征,使用预训练人脸识别模型数据提取用户图 ...

  5. PhotoShop画布自动适应图像的尺寸大小?

    PhotoShop画布自动适应图像的尺寸大小? 困扰很久,感谢百度用户"季末杀手"的帮助.问题如下: 图像剪切后比画布小多了,用调整画布大小的形式输入数据太慢,有次见人一下就把画布 ...

  6. fMRI质量预检查与服务器批量处理:时间点、体素尺寸批量审查与Dpabi(DPARSFA)服务器上无GUI无弹窗处理脑功能影像(附matlab脚本)

    | 图源-slice | 工具:dpabi5.0, spm12, NIfTI_20140122(密码:iizk)      我们知道在进行fMRI预处理的时候,要求所有被试时间点相同,它将直接影响到s ...

  7. 如何同时对多张图片进行批量裁剪、批量旋转方向

    概要:「我的ABC软件工具箱」提供了给图片批量添编辑功能,可以对图片进行批量旋转.水平翻转.垂直翻转以及批量裁剪.可以自定义区域批量裁剪,对于大批量的图片进行裁剪非常的高效.支持常见的图片类型如 jp ...

  8. 【图片批量处理软件分享】可批量添加水印/批量重命名/批量裁剪/批量缩小尺寸

    今天分享的这款软件是一款图片批量处理软件,永久免费使用! 链接:https://pan.baidu.com/s/1XyPgHpDBF9_FMhdGQIzUDg 提取码:k4q7 如果你需要批量处理图片 ...

  9. qt 批量裁剪图片_照片变素描,不用下载App,好用的在线图片处理及图库

    我们要处理图片时,无论是在电脑还是手机上,往往都需要下载软件,但如果你只是临时用一下的话,下载软件难免显得工程有点浩大.下面就推荐几个图片处理网站,打开网页就能用. 1.图片处理 funny.pho. ...

最新文章

  1. asp.net 获取当前时间的格式
  2. sklearn gridcv
  3. 20 亿个数字在 4G 内存中如何去重排序:快来试一试 BitMap
  4. python控制caxa模块_CAXA二次开发实用手册.doc
  5. win 修改hosts文件权限不够,解决办法
  6. 信号与系统参考书推荐
  7. 基于FTP的Nordic nRF51822 OTA 教程一之修改boot区大小
  8. mysql my-small.ini_MySql优化之my-small.ini配置
  9. kafka 清除topic数据脚本
  10. Python技术分享:深入理解ThreadLocal变量的功能和使用
  11. 29岁“退休程序员”郭宇:有钱的人不一定自由,自由的人不一定有钱
  12. java21天打卡-day2
  13. python集合_Python集
  14. Spring 下 MyBatis 的基本使用
  15. atitit查询表修改表字段没反应--解锁锁定的表
  16. 天体运行轨迹_都说运动是天体的基本特性,那么银河系是绕着什么运动的呢?...
  17. Java8新特性之一:Lambda表达式
  18. 360抢票服务器响应,抢票首日 360浏览器成最佳
  19. 第一章第二题(显示五条消息)(Display five messages)
  20. argc和argv的使用总结

热门文章

  1. ARM Linux的面试题
  2. [VB.NET源码]销售管理系统
  3. NAND FLASH的读写操作(硬件原理图分析)
  4. iOS使用MD5 - 字符串加密至MD5获取文件MD5
  5. 高职院校计算机应用基础教学探讨,高职院校计算机应用基础课程教学改革探讨论文...
  6. 使用php 实现生成Excel文件并导出
  7. 有关python的比赛_用 Python 写一个 Kaggle 比赛排行榜的爬虫
  8. 程序员们该活动活动了 ,北京的同行们给你们推荐点北京好玩的地方
  9. Apache dbutils工具
  10. Android好用的第三方开源库