最近,迷上了用 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 以前也用过,需要装第三方库。
折分小图后: