Swift:如何为iMessage扩展压缩apng?

时间:2016-12-23 00:50:26

标签: swift png imessage-extension apng mssticker

好吧,我刚刚学会了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)
    }

我以编程方式从文件夹加载我的图像,而不是资源: enter image description here 当我有超过11个618x618 png时开始崩溃,那么现在我能够用更小的300x300图像获得更多图像,但我不想制作具有不确定帧数限制的动画。

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

0 个答案:

没有答案