pixiv 土法制gif

科学世纪少年 posted @ 2014年6月27日 00:41 in linux , 2906 阅读
先放出大傻来catch eyeball
 
被输入法折磨了一下午一晚上,本来还以为今天没什么可以写的不过到最后还是有值得收获的东西。
嘛由于昨天的谷歌抽插大会之后又摸鱼到四点多才入睡所以今天早晨爸妈很体谅地去上班却没有叫我因此睡到了十一点多,起来刷了刷G+就到了午饭时间,根本不饿也就随随便便吃了点面之后肝起舰娘来了。
 
下午时间匆匆,大概四点开始看论文,此后被微软IME以及fcitx折磨得生不如死,这个内容放到下次解决之后再说。
以上就是今天的流水,下面开始正文。
 
----------
 
今天才得知pixiv出了动图功能,之前都是进去收壁纸的所以没有把动图太当回事,今天听说了也看到G+上有人在找动图的方法。
得到了链接可爱的[金刚大傻](http://www.pixiv.net/member_illust.php?mode=medium&illust_id=44329118)
用firefox和chrome的审查元素看了一下,发现是一个奇怪的东西:zipimageplayer
pixiv为了防止非premium用户下载,因此采用了压缩格式。我不是绘师所以我完全对上传的格式没有概念。
不过估计过去大概几种情况:
 
1.pixiv要求绘师上传png/jpeg/bmp等等格式的静态图片,上传多张之后在后台合成成gif在zipimageplayer显示,同时打包成zip格式
2.pixiv直接要求绘师上传gif,之后按帧分割成jpeg然后打包成zip
3.直接要求上传zip
 
不过我觉得第一种可能性比较大。之后还会提到。
通过审查元素发现一个44329118_ugoira600x600.zip,根据header的描述是个奇怪的类似flashplayer一样的东西,没有接触过我也不懂,不过地址倒是很容易拿下:`Request URL:http://i1.pixiv.net/img-zip-ugoira/img/2014/06/26/22/44/41/44329118_ugoira600x600.zip`
不过如果真的这么简单就不这么大费周章了。实际上通过wget下载和网页打开,都显示403 Forbidden 没有权限获取所以这个方法暂时需要放弃。果然还是premium用户王道呢。
之后也通过插件尝试了直接抓取elements的方法包括静琴提出的直接保存页面的方法……嘛pixiv应该想到了所以都以失败告终
 
不过土人自有土法,有土法就不会没办法。审查元素还有image类别,因此完全不用担心没有静态图!手动抓取了和原始分辨率同样大小的静态图,jpeg格式,不过审查元素出来的都是blob啥的html完全不能打开,只能在preview里面找到预览然后拖到新窗口打开,不用担心,完全没有因此而受损。
之后发现其实这个动图只有4张嘛!还好还好,要是几十张我真的可能就放弃了。
 
之后的工作就不那么困难了,有了思路怎么都好做。如果在win下面直接找一个jpeg转gif的小工具就好了完全不要费心。只不过当时在linux下面因此就想到了用批处理convert得到gif图片,实际上也很简单,就一句bash搞定
#!/bin/bash
convert delay -8 loop 0 *.jpeg to a.gif
简单的批处理命令就搞定了,难的在于还原原来图片的动画效果,时间要对准,因此delay花了一些时间来调整,不过结果看起来差不多,对比起来还是有差别的。而且为了造成中间的间隔效果不至于眼睛眨个不停还多复制了睁大眼的好多张jpeg来凑数。
 
这就是土法,在获取图的时候困难了一点。期待某大神能够早日做出批量获取静态图的工具或者说更进一步能够直接scratch动态图下来那真是太棒了。土法只能适用于本命动图非要不可的情况下才有心做这个,而且可扩展性也不大,大概只能我自己用难以推广。
嘛懒人自有懒法这就是程序员嘛。
晚安各位,送上自制的金刚大傻~
 
 
blog comments powered by Disqus