来自妹子的需求:App的logo自动切图脚本

一、来自女朋友的切图需求

      正在撸码的我,无意之中又听到了女朋友的叹息:“切图太浪费时间了“。是的,我的女朋友是一个UI设计师,她设计的图片可以绕地球一周,但是设计师的痛点就是切图费劲,特别是给APPlogo切图的时候,一个logo要切10几个不同的大小,实在是痛苦。

      有mac电脑的UI还好一些,最起码有mac软件可以一键切图,但是在windows下就不是那么友好了。因此,我决定帮帮妹子,争取给他弄个一键切图工具,下面分享下一键切图的原理部分,脚本运行环境是debian系统服务器。

二、一键切图大致原理

      在网上百度的时候,看到一个ios大佬写了个一键切图的脚本,感觉思路相当不错,只可惜他的脚本中是使用的sips来实现批量缩放图片的,我们linux可没有这个东西,不过大佬的思路是极好的,我们可以找一下linux控制图片缩放尺寸的工具包。

大佬链接:https://www.jianshu.com/p/42e5becb4cb2

1、大致思路

(1)在脚本中获取要切的logo图片
(2)定义数组,数组里面是我们要切的尺寸大小和图片名称
(3)循环数组,然后使用linux下的缩放工具生成新图片
(4)把生成的新图片保存到新的文件夹中

2、linux下图片缩放工具

      经过百度,我们选用ImageMagick作为图片缩放的工具包,可以使用它的Convertresize子命令,我们定义好图片的大小尺寸之后,就可以生成新图片的。

(1)安装ImageMagick
apt-get install ImageMagick
(2)子命令生成图片
convert -resize 图片名称 原图片 新文件夹。
(3)查看生成图片尺寸信息
identify icon20@16x.png

icon20@16x.png PNG 16x16 16x16+0+0 8-bit sRGB 236c 1.27KB 0.000u 0:00.000

可以看到这是16x16尺寸的图片

三、生成不同尺寸logo的shell脚本

      明确上面原理之后,博主按照女朋友的想法,定义了她想要的logo尺寸,一下生成11个文件,怪不得不想切图呢。。

1、脚本代码

#!/bin/bash
# 脚本使用方法:直接把脚本拖入终端 然后回车键即可执行
# ⚠️注意1:将脚本与logo放在同一个文件夹里
# ⚠️注意2:如果执行脚本时出现如下错误是因为文件权限不足,只需对其授权777即可



################## 参数配置logo图标名称(最好用1024x1024的logo)##################
filename="logo.png"


printf "
#######################################################################
#        博主名称:铁柱同学
#        博客链接:https://blog.csdn.net/LJFPHP
#######################################################################
"

dirname="icon_cutimg"
name_array=("icon20@16x.png" "icon20@60x.png" "icon20@72x.png" "icon20@80x.png" "icon20@90x.png" "icon20@96x.png" "icon20@120x.png" "icon20@144x.png" "icon20@180x.png" "icon20@512x.png" "icon20@1024x.png")
size_array=("16x16!" "60x60!" "72x72!" "80x80!" "90x90!" "96x96!" "120x120!" "144x144!" "180x180!" "512x512!" "1024x1024!")

# 获取脚本当前所在目录(即上级目录绝对路径)
root_dir=$(cd "$(dirname "$0")"; pwd)/
# 切换到当前脚本的工作目录
cd ${root_dir}
# 创建文件夹存放自动切图
mkdir $dirname

for((i=0;i<${#name_array[@]};++i)); do

m_dir=$dirname/${name_array[i]}

cp $filename $m_dir

convert -resize ${size_array[i]} $filename $m_dir
#convert -resize 500x500! $filename $m_dir
done

2、脚本在服务器的目录结构

ls
AutoCutting.sh   logo.png

logo.png是原logo图片,最好是1024x1024
Auto 是咱们自动脚本的名称,记得给777权限

3、生成logo图片

在当前目录上执行:

./AutoCutting.sh

这里如果使用 sh 脚本名称 的方式启动的话,可能会报错:

Syntax error: "(" unexpected

      这是因为脚本没有指定执行的sh是哪个,可以考虑指定bash运行,也可以像博主这样直接 ./.sh脚本执行。

效果如下:

root@ljf:/home/ljf/img# ./AutoCutting.sh

#######################################################################
#        博主名称:铁柱同学
#        博客链接:https://blog.csdn.net/LJFPHP
#######################################################################
root@ljf:/home/ljf/img# ls                               
AutoCutting.sh  icon_cutimg  logo.png
root@ljf:/home/ljf/img# cd icon_cutimg/
root@ljf:/home/ljf/img/icon_cutimg# ls
icon20@1024x.png  icon20@144x.png  icon20@180x.png  icon20@60x.png  icon20@80x.png  icon20@96x.png
icon20@120x.png   icon20@16x.png   icon20@512x.png  icon20@72x.png  icon20@90x.png

      生成的icon_cutimg 里面就是我们需要的logo图片。查看能看到生成了我们想要的图片。

4、通过wincp把图片都下载下来

如图:
在这里插入图片描述

      OK,女朋友想要的尺寸全部生成。(PS: 虽然后几张看起来大小一样,实际上查看属性,分辨率已经是我们想要的分辨率了。)

四、其他

1、脚本适用性

      这个脚本适合各位大佬给自己女朋友使用,本质上实用性不高,毕竟没linux基础的人也用不了

2、windows下不能使用

      博主想在windows下试试,图片是生成了,但是尺寸没有变化,可能是因为没在windows下找到合适的控制图片缩放的工具。还是在linux上面方便,一行命令就搞定了

3、仍需完善

      这只是个初级版本,有时间的话可以做个工具,一切都是为了让女朋友开心,哈哈

      归根结底,还是因为女朋友没MAC的原因啊!博主背锅,看来买个MAC来设计是势在必行了!

end

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
Photoshop切图批处理脚本可以帮助您自动切图的过程,提高工作效率。以下是一个简单的Photoshop切图批处理脚本示例: ``` #target photoshop // 获取当前文档对象 var docRef = app.activeDocument; // 切图尺寸 var sliceWidth = 200; var sliceHeight = 200; // 切图起始位置 var startX = 0; var startY = 0; // 切图数量 var numSlicesX = Math.ceil(docRef.width / sliceWidth); var numSlicesY = Math.ceil(docRef.height / sliceHeight); // 切图循环 for (var i = 0; i < numSlicesX; i++) { for (var j = 0; j < numSlicesY; j++) { // 计算切图位置 var sliceX = startX + i * sliceWidth; var sliceY = startY + j * sliceHeight; // 计算切图区域 var sliceBounds = [ sliceX, sliceY, sliceX + sliceWidth, sliceY + sliceHeight ]; // 创建切图 var sliceRef = docRef.artLayers.add(); sliceRef.name = "Slice_" + i + "_" + j; sliceRef.bounds = sliceBounds; // 导出切图 var sliceName = sliceRef.name + "_" + docRef.name + ".png"; var exportOptions = new ExportOptionsSaveForWeb(); exportOptions.format = SaveDocumentType.PNG; exportOptions.PNG8 = false; exportOptions.transparency = true; exportOptions.interlaced = false; exportOptions.includeProfile = false; exportOptions.optimized = true; docRef.exportDocument(new File(docRef.path + "/" + sliceName), ExportType.SAVEFORWEB, exportOptions); // 删除切图 sliceRef.remove(); } } // 完成 alert("切图完成!"); ``` 这个脚本将文档分成若干个指定大小的切片,并将每个切片导出为PNG文件。您可以根据需要修改切片大小和导出选项。要使用此脚本,请将代码复制到一个文本编辑器中,并将文件保存为.jsx格式。然后在Photoshop中打开您要切图的文档,并选择“文件”>“脚本”>“浏览”,然后选择您保存的脚本文件。脚本自动运行,并生成切片。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值