plist 图集 php 批量提取 PS 一个个切

最近,迷上了用 cocos2d 做游戏开发。由于是新入门,很多东西从头开始学。

在使用 sprite 的 Rect 裁剪显示的时候,显示总是多一块。所以,要从图集中提取一张张图,这样就省了裁剪。

原图是这样的,一大张 png 图集,花钱买的素材,可是并没有提供 plist 文件。

如果,只有几张,就ps 手切了,现在有点多,还要画很多条参考线。

先在网上搜了几下,没有发现适用的软件,只得自己做一个了,python , java, c#, php 都可以做,考虑到还要配置各种环境,

所以还是用最拿手的 php 来搞,源码如下:

 1 <?php
 2 //author: nejidev
 3 //date: 2019-10-05 21:29
 4 $src_png = imagecreatefrompng('card.png');
 5 
 6 $width   = 100;
 7 $height  = 134;
 8 $top     = 0;
 9 $left    = 0;
10 
11 for($i=0; $i<5; $i++)
12 {
13     $left = 0;
14     for($j=0; $j<13; $j++)
15     {
16         $new_png = imagecreate($width, $height);
17         imagecopy($new_png, $src_png, 0, 0, $left, $top, $width, $height);
18         imagepng($new_png, "$i-$j.png");
19         imagedestroy($new_png);
20         $left += $width;
21     }
22     $top += $height;
23     //top 微调
24     if(0 == $i) $top += -1;
25     if(1 == $i) $top += -1;
26     if(2 == $i) $top += 0;
27     if(3 == $i) $top += -1;
28 }
29 imagedestroy($src_png);

PHP 果然没让失望,几下代码就搞定了,其实核心只有一行 imagecopy() ,要是 java 估计多几倍,python 以前也用过,需要装第三方库。

折分小图后:

 

posted @ 2019-10-05 21:32  宁次  阅读(426)  评论(0编辑  收藏  举报