AC6X000
爱思考的小思考
采纳率50%
2020-09-17 14:47 阅读 143

编程语言硬改APNG动态图以实现上传到对格式有限制的网页是如何实现的?

60

背景原因:
近日发现了一张图片,图片格式后缀为.jpg格式,但是图片在浏览器中打开后实际为动图,在网上几经查询后,通过百度教学用ACDSEE查看发现该图片实则为一张后缀为jpg的APNG动态图。后自己尝试模仿制作无果。

出现的问题:
自己通过拆分GIF,合并序列帧的操作做出的APNG格式动态图与成品图(即发现的APNG动图)存在一定差异,
【【成品图可以上传到一些对APNG格式有限制的网站页面,APP并且可以正常保持动态,而我自己做的图片并不可以上传到这些网页APP。】】

自我求索思考:
在网上查到了两个个人认为比较有用的观点,第一点是由知乎 @王洪雷 大佬在2013年07月回答的一个关于后缀jpg如何实现动图的答案。下附截图

图片说明

但是由于本人对java编程一窍不通,决定暂时放弃,求助他人。

之后又发现了第二种思路(【原创】区分png图片格式和apng图片格式的解决办法)并且按照大佬的做法发现了问题。参考点下附截图
图片说明

文章中说道acTL起到了通知解析器这是一个动画PNG的作用,在我看来是个门童的感觉,于是乎我有了一个大胆的猜想,不太确定能不能办到,如果将区分APNG格式和PNG格式的这个门童处理掉,那么,解析器是否会直接判断这张图片为png格式图片,但是实际APNG格式展示的内容并没有影响?这有可能是个比较愚蠢的猜想。
于是我自己做了尝试,结果如下:
图片说明

成品图在Ultra Edit中我发现该成品图与文章中一样但是,acTL版块出现在较靠后的位置如图,大约在第32行

图片说明

而半成品图也就是说自己做的不能通过检测的图片这个版块出现在开头位置,由于我对这方面的知识处于一张白纸,我大胆假设,会不会因为在成品图的前31行混淆了上传时处理器的判断,让处理器判断为普通的PNG可以上传,但是真正的图片内容在32行后,前面的内容并不影响图片内容与动态效果?

(由于不确定上传的成品图会不会被转码,在下方放上半成品和成品图链接)
链接:https://pan.baidu.com/s/1rHYqH4FpA20AkIt9FLkRYw
提取码:0qbg

请教需求:

  • 我如何做一张类似于成品图一样的APNG图片?或者说请教我一个作图方法。
  • 如果只需要将我的半成品通过某些代码转换就可以的话是否可以请求给一个代码加使用方法?
  • 如何将做好的成品APNG格式图片压缩大小?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    jklwan jklwan 2020-09-22 16:08

    没太明白问题,
    1、你说的这个网站是不是把APNG文件后缀改为jpg就可以上传了?
    2、把GIF文件改后缀是否可以上传?
    3、你是想把GIF解析后转换为APNG吗?

    GIF转APNG还是蛮复杂的,需要把GIF的每一帧解析出来,然后把每一帧根据APNG的格式进行重新封装写入。可以考虑用公开的API来实现。

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2020-09-17 20:10

    这个要看你的网站是怎么限制的,大多数网站判断,只是读取文件前几个字节(被叫做 signature),只要强行修改为允许的signature即可骗过网站。

    点赞 评论 复制链接分享

相关推荐