1

好吧,我最近刚刚了解了 png 和 apng 之间的区别,但我有一个自定义贴纸消息扩展,使用此框架项目中的类动画贴纸:https ://github.com/radif/MSSticker-Images

Apple 对动画贴纸的大小限制是 500 kb,但我从其他论坛了解到的是,即使当 Xcode 将您的 png 转换为 apng 制作像这里这样的贴纸时,总 png 大小小于 500 kb(我的是),还有额外的增加了尺寸。这导致我的项目崩溃:

func addSticker(images: [UIImage], name: String)
    {
        let sticker: MSSticker
        do {
            try sticker=MSSticker(images: images, format: .apng, frameDelay: 0.95/14.0, numberOfLoops: 0, localizedDescription: name)
        }catch MSStickerAnimationInputError.InvalidDimensions {
            fatalError("ERROR: Dimens")
        }catch MSStickerAnimationInputError.InvalidStickerFileSize {
           fatalError("ERROR: Size")
        } catch { fatalError("other error:\(error)") }

        var stickerSize = CGSize()

        let stickerView = InstrumentedStickerView(frame: CGRect(origin: CGPoint(x: 0,y :0), size: stickerSize))
        stickerView.sticker = sticker
        stickerView.delegate = self

        stickerPack.append(stickerView)
    }

我以编程方式从文件夹加载我的图像,而不是资产: 在此处输入图像描述 当我有超过 11 个 618x618 pngs 时,它开始崩溃,然后现在我能够使用更小的 300x300 图像获得更多图像,但我不想制作动画具有不确定的帧数限制。

除了减小尺寸以减小尺寸之外,还有其他方法吗?我发现了这个https://github.com/onevcat/APNGKit如果我使用它手动将我的 png 转换为 apng,它会停止添加额外的大小吗?

4

0 回答 0