好吧,我刚刚学会了png和apng之间的区别,但我有一个自定义贴纸消息扩展,其中包含使用此框架项目中的类的动画贴纸:https://github.com/radif/MSSticker-Images
Apple对动画贴纸的大小限制是500 kb,但是我从其他论坛学到的是即使总的png大小小于500 kb(我的),当Xcode将你的png转换成apngs时像这里的贴纸,增加了额外的尺寸。这导致我的项目崩溃:
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 png时开始崩溃,那么现在我能够用更小的300x300图像获得更多图像,但我不想制作具有不确定帧数限制的动画。
除了缩小尺寸以减小尺寸外,还有其他方法吗?我发现这个https://github.com/onevcat/APNGKit如果我使用它来手动将我的png转换为apng会停止添加额外的大小吗?