Javascript 如何压缩一系列PNG进行加载?

Javascript 如何压缩一系列PNG进行加载?,javascript,canvas,png,gif,Javascript,Canvas,Png,Gif,我已经为游戏角色准备了一系列PNG,比如stand.PNG、run1.PNG、run2.PNG 我想加载它们,以便在javascript画布中绘制一系列动作。由于.png的大小,如果一个字符大约有50帧,我必须为一个字符加载几乎2MB 那么,你有没有想过用diff算法之类的方法来压缩这些类似的PNG呢 您可以在一个png上绘制所有角色状态,并将该png文件(png sprite)加载到浏览器中。例如,您可以在此网站上执行此操作。然后,您可以在画布中绘制部分png sprite。您可以在一个png

我已经为游戏角色准备了一系列PNG,比如
stand.PNG、run1.PNG、run2.PNG

我想加载它们,以便在javascript画布中绘制一系列动作。由于
.png
的大小,如果一个字符大约有50帧,我必须为一个字符加载几乎2MB


那么,你有没有想过用
diff
算法之类的方法来压缩这些类似的PNG呢

您可以在一个png上绘制所有角色状态,并将该png文件(png sprite)加载到浏览器中。例如,您可以在此网站上执行此操作。然后,您可以在画布中绘制部分png sprite。

您可以在一个png上绘制所有角色状态,并将该png文件(png sprite)加载到浏览器。例如,您可以在此网站上执行此操作。然后,您可以在画布中绘制部分png sprite。

您可以在一个png上绘制所有角色状态,并将该png文件(png sprite)加载到浏览器。例如,您可以在此网站上执行此操作。然后,您可以在画布中绘制部分png sprite。

您可以在一个png上绘制所有角色状态,并将该png文件(png sprite)加载到浏览器。例如,您可以在此网站上执行此操作。然后你可以在画布中绘制PNG精灵的部分。

首先删除所有的空白区域(透明)。这可能会导致图像大小不同,您必须将偏移量和大小存储在文件中。一个简单的JSON文件来描述你的角色精灵就可以了

检查精灵之间的相似性。Run1.png和Run2.png的上半部分可能有相同的偏移量,因此将其修剪并存储为一个图像和两个跑步腿图像分开

JPG图像不存储透明像素,但可以非常紧凑。考虑将透明像素存储在单独的8位压缩的PNG图像或自定义二进制格式中。4位适用于大多数透明度要求。然后,您可以将颜色信息存储在jpgs中,从而为您节省大量数据

确保您发送的精灵不只是其他精灵的镜像或旋转。在客户端执行镜像和旋转

如果每个精灵都很小,你希望使用PNG格式,考虑8位颜色查找格式,而不是32位RGBA。如果您有相同但颜色不同的精灵,您可以为它们创建单独的托盘,而不是单独的图像,并且在客户端上,只需使用新托盘替换像素颜色即可


如果角色携带某物(如枪),请取出枪并将其存储在单独的图像中。在加载时添加它,或者将它分开,并在渲染时添加它。

首先删除所有字符周围的空白(透明)。这可能会导致图像大小不同,您必须将偏移量和大小存储在文件中。一个简单的JSON文件来描述你的角色精灵就可以了

检查精灵之间的相似性。Run1.png和Run2.png的上半部分可能有相同的偏移量,因此将其修剪并存储为一个图像和两个跑步腿图像分开

JPG图像不存储透明像素,但可以非常紧凑。考虑将透明像素存储在单独的8位压缩的PNG图像或自定义二进制格式中。4位适用于大多数透明度要求。然后,您可以将颜色信息存储在jpgs中,从而为您节省大量数据

确保您发送的精灵不只是其他精灵的镜像或旋转。在客户端执行镜像和旋转

如果每个精灵都很小,你希望使用PNG格式,考虑8位颜色查找格式,而不是32位RGBA。如果您有相同但颜色不同的精灵,您可以为它们创建单独的托盘,而不是单独的图像,并且在客户端上,只需使用新托盘替换像素颜色即可


如果角色携带某物(如枪),请取出枪并将其存储在单独的图像中。在加载时添加它,或者将它分开,并在渲染时添加它。

首先删除所有字符周围的空白(透明)。这可能会导致图像大小不同,您必须将偏移量和大小存储在文件中。一个简单的JSON文件来描述你的角色精灵就可以了

检查精灵之间的相似性。Run1.png和Run2.png的上半部分可能有相同的偏移量,因此将其修剪并存储为一个图像和两个跑步腿图像分开

JPG图像不存储透明像素,但可以非常紧凑。考虑将透明像素存储在单独的8位压缩的PNG图像或自定义二进制格式中。4位适用于大多数透明度要求。然后,您可以将颜色信息存储在jpgs中,从而为您节省大量数据

确保您发送的精灵不只是其他精灵的镜像或旋转。在客户端执行镜像和旋转

如果每个精灵都很小,你希望使用PNG格式,考虑8位颜色查找格式,而不是32位RGBA。如果您有相同但颜色不同的精灵,您可以为它们创建单独的托盘,而不是单独的图像,并且在客户端上,只需使用新托盘替换像素颜色即可


如果角色携带某物(如枪),请取出枪并将其存储在单独的图像中。在加载时添加它,或者将它分开,并在渲染时添加它。

首先删除所有字符周围的空白(透明)。这可能会导致图像大小不同,您必须将偏移量和大小存储在文件中。一个简单的JSON文件来描述你的角色精灵就可以了

检查精灵之间的相似性。Run1.png和Run2.png的上半部分可能有相同的偏移量,因此将其修剪并存储为一个图像和两个跑步腿图像分开

JPG图像不存储透明像素,但可以是透明的