【已解决】怎么获取png图片不含透明背景的实际区域呢?

更新一下,自己查了下解决了,方案是读取png图片每个像素点信息,然后判断透明度情况,如果是全透明就跳过,点这里下载git代码,下载代码后,运行 node index.js 会输出图片的rect 范围(需要nodjs环境,忽略其他输出,渣渣代码请无视)


怎么获取png图片不含透明背景的实际区域呢?需要自己获取png的实际图片区域,就像Creator那样。有个需求需要用到,找了半天没找到有用的,所以来问问。


注意,需要自己实现,不能用Creator的那个贴图工具;另外我试过,通过cc.loader.load 加载的png图片,用spriteFrame.getRect()获取到的大小是原图的大小,不是除去透明区域的实际大小。


像下面这个带透明区域的png图片,原图大小是200*200,实际图片大小是94*94,怎么自己用代码读取png的实际图片区域呢?

<img src="/uploads/default/original/3X/8/b/8b46498f62eb82f752ac8efbda6a6625395e573f.png" width="417" height="499">

<img src="/uploads/default/original/3X/8/f/8fef703ed4e0bcec42fd206a771fdda58d96f76e.png" width="690" height="339">




这是原图(是带有透明区域的):




<img src="/uploads/default/original/3X/2/f/2f73b609ddf71f4408cb76bfafdd176c2dd28654.png" width="200" height="200">

https://docs.cocos.com/creator/api/zh/classes/SpriteFrame.html?h=spriteframe
getRect 获取 SpriteFrame 的纹理矩形区域
经常查下API,很多都不用问

见笑了,是我问题没有问清楚,我又修改了下问题,这下应该清楚了。其实我是想获取png图片中实际图片的大小(就是不含透明区域的那部分),需要自己用代码实现,不能用Creator的那个切图工具