一个朋友在我的Facebook起始页上的消息提要中直接发布了动画图像。这怎么可能?

这是Facebook使用的URL:
http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/29301_442976909814_310716489814_5773694_3162803_s.jpg


在Notes中:
http://www.facebook.com/note.php?note_id=289489697750142
在相册中:http://www.facebook。 com / media / set /?set = a.125244550820831.21461.123901794288440&type = 1
在应用程序中:http://www.facebook.com/Animated.Pictures

这是GIF图片吗重命名为.jpg吗?

我不知道它是否有帮助,但是这是包含该图像URL的部分(脚本):

<script>big_pipe.onPageletArrive({"phase":4,"id":"pagelet_photo_bar","css":["aes1F","FPnMi"],"js":["Py8xV","1k++i","9qrJd"],"onload":["PhotoTheater.init(HTML(\"\u003cdiv id=\\"fbPhotoTheater\\" class=\\"fbPhotoTheater hidden_elem narrowerWhiteBar\\" tabindex=\\"0\\" role=\\"region\\" aria-label=\\"Facebook-Diashow\\" aria-busy=\\"true\\">\u003cdiv class=\\"container\\">\u003cdiv class=\\"positioner\\">\u003ca class=\\"uiTooltip closeTheater\\" href=\\"#\\">\u003ci class=\\"closeImage img sp_6lzo0r sx_bbf9a4\\">\u003c\\/i>\u003cspan class=\\"uiTooltipWrap middle left leftmiddle\\">\u003cspan class=\\"uiTooltipText uiTooltipNoWrap\\">Schlie\u00dfen\u003c\\/span>\u003c\\/span>\u003c\\/a>\u003c\\/div>\u003cdiv class=\\"stageBackdrop\\">\u003c\\/div>\u003cdiv class=\\"stageWrapper\\">\u003cdiv class=\\"stage\\">\u003cimg src=\\"\\/images\\/loaders\\/indicator_black.gif\\" class=\\"spotlight\\" \\/> \u003cdiv class=\\"fbPhotosTheaterTags tagContainer\\" id=\\"fbPhotoTheaterTags\\">\u003cdiv class=\\"tagsWrapper\\">\u003c\\/div>\u003c\\/div>\u003c\\/div>\u003cdiv class=\\"videoStage\\"> \u003c\\/div>\u003cdiv id=\\"fbPhotoTheaterError\\" class=\\"fbPhotoTheaterError hidden_elem stageError\\">\u003c\\/div>\u003c\\/div>\u003cdiv class=\\"stageActions\\" id=\\"fbPhotoTheaterStageActions\\">\u003ca class=\\"prev\\" href=\\"#\\" title=\\"Zur\u00fcck\\">\u003c\\/a>\u003ca class=\\"next\\" href=\\"#\\" title=\\"Weiter\\">\u003c\\/a>\u003cdiv class=\\"fbPhotoTheaterButtons\\" id=\\"fbPhotoTheaterButtons\\">\u003c\\/div>\u003c\\/div>\u003cdiv class=\\"photoInfoWrapper\\">\u003ctable class=\\"uiGrid fbPhotoTheaterGrid photoInfo\\" cellspacing=\\"0\\" cellpadding=\\"0\\">\u003ctbody>\u003ctr>\u003ctd class=\\"vTop detailsCell\\">\u003cdiv class=\\"detailsContainer\\">\u003cdiv id=\\"fbPhotoTheaterTitle\\">\u003c\\/div>\u003cspan id=\\"fbPhotoTheaterContributors\\">\u003c\\/span> \u003cspan class=\\"fsm fwn fcg\\" id=\\"fbPhotoTheaterCount\\">\u003c\\/span>\u003chr class=\\"mvm\\" \\/>\u003cdiv id=\\"fbPhotosTheaterActions\\" class=\\"fbPhotosTheaterActions\\">\u003c\\/div>\u003c\\/div>\u003c\\/td>\u003ctd class=\\"vTop commentsCell\\">\u003cdiv class=\\"commentsContainer\\">\u003cdiv class=\\"fbPhotosTaglist mbm tagpile\\" id=\\"fbPhotosTaglist\\">\u003cspan class=\\"caption fsm fwn fcg\\">Auf diesem Foto: \u003c\\/span>\u003c\\/div>\u003cdiv id=\\"fbPhotoTheaterUfi\\">\u003cform rel=\\"async\\" class=\\"commentable_item autoexpand_mode\\" method=\\"post\\" action=\\"\\/ajax\\/ufi\\/modify.php\\" onsubmit=\\"return Event.__inlineSubmit(this,event)\\">\u003cinput type=\\"hidden\\" name=\\"charset_test\\" value=\\"&euro;,&acute;,\u20ac,\u00b4,\u6c34,\u0414,\u0404\\" \\/>\u003cinput type=\\"hidden\\" autocomplete=\\"off\\" name=\\"post_form_id\\" value=\\"10711e587b061f39240641dbc74019ac\\" \\/>\u003cinput type=\\"hidden\\" name=\\"fb_dtsg\\" value=\\"AQBfQgRs\\" autocomplete=\\"off\\" \\/>\u003c\\/form>\u003c\\/div>\u003c\\/div>\u003c\\/td>\u003ctd class=\\"vTop adsCell\\">\u003cdiv class=\\"adsContainer\\">\u003cdiv class=\\"clearfix\\">\u003cdiv id=\\"fbPhotoTheaterEgo\\" class=\\"fbPhotoTheaterEgo\\">\u003c\\/div>\u003cdiv class=\\"fbPhotoTheaterEgoSponsored fss fwn fcg\\">Gesponsert\u003c\\/div>\u003c\\/div>\u003c\\/div>\u003c\\/td>\u003c\\/tr>\u003c\\/tbody>\u003c\\/table>\u003c\\/div>\u003c\\/div>\u003c\\/div>\"));"],"onafterload":["Bootloader.loadComponents([\"fb-photos-theater-css\"], function(){  });"],"content":{"pagelet_photo_bar":"\u003cdiv class=\"mbm fbProfilePhotoStrip\">\u003cul class=\"fbProfilePhotoBar\">\u003cli class=\"stat_elem\" id=\"thumb193067094054363\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=193067094054363&amp;set=t.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=193067094054363&amp;set=t.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa1.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc6\u00252F179200_193067094054363_100000532222327_655777_5428850_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-a.ak.fbcdn.net\/hphotos-ak-snc6\/179200_193067094054363_100000532222327_655777_5428850_s.jpg); background-position: -33px -17px;\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\" id=\"thumb185312914825402\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=185312914825402&amp;set=t.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=185312914825402&amp;set=t.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa8.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc6\u00252F165369_185312914825402_100000400858474_523262_6205304_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-h.ak.fbcdn.net\/hphotos-ak-snc6\/165369_185312914825402_100000400858474_523262_6205304_s.jpg); background-position: -22px -30px;\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\" id=\"thumb175015452521815\">\u003ca class=\"uiMediaThumb fbProfilePhotoThumb uiMediaThumbMedium\" href=\"http:\/\/www.facebook.com\/photo.php?fbid=175015452521815&amp;set=a.175015445855149.34462.100000400858474&amp;type=1\" rel=\"theater\" ajaxify=\"http:\/\/www.facebook.com\/photo.php?fbid=175015452521815&amp;set=a.175015445855149.34462.100000400858474&amp;type=1&amp;src=http\u00253A\u00252F\u00252Fa6.sphotos.ak.fbcdn.net\u00252Fhphotos-ak-snc4\u00252F156854_175015452521815_100000400858474_459703_1557976_n.jpg&amp;theater\">\u003ci style=\"background-image: url(http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/156854_175015452521815_100000400858474_459703_1557976_s.jpg);\">\u003c\/i>\u003c\/a>\u003c\/li>\u003cli class=\"stat_elem\">\u003cdiv class=\"fbProfilePhotoThumbEmpty\">\u003c\/div>\u003c\/li>\u003cli class=\"stat_elem\">\u003cdiv class=\"fbProfilePhotoThumbEmpty\">\u003c\/div>\u003c\/li>\u003c\/ul>\u003c\/div>"}});</script> 

< br上面的重要部分似乎在这里:

style=\"background-image: url(http:\/\/photos-f.ak.fbcdn.net\/hphotos-ak-snc4\/156854_175015452521815_100000400858474_459703_1557976_s.jpg);\">


评论

您不能只是将gif重命名为jpg并期望它能工作。

是的,我只是尝试过。 GIF仍正确显示在facebook上,但没有动画。

#1 楼

2015年5月
http://mashable.com/2015/05/29/facebook-gif-support/

要记住的第一件事是该功能可用于GIF链接,不是GIF上传。至少到目前为止,尝试上传您喜欢的GIF不会在Facebook上产生可用的可播放GIF。
[...]
Giphy,Imgur,GFYcat等服务正在尝试制作更容易在网络上嵌入大型GIF。
[...]
确保您使用的是Giphy或其他GIF服务提供的完整GIF网址。

2012年4月-当前的Exploit使用移动文本应用程序传递图像
http://www.facebook.com/connect/uiserver.php?app_id=2915120374
&method=stream_publish
&redirect_uri=http://www.facebook.com
&from=SENDERID
&target_id=RECEIVERID
&action_links=[{"text":"Your Text Here",
                "href":"http://www.blank.com/"}]
&attachment={'media':[{'type':'image',
                       'src':'animationurl',
                       'href':'anyurl'}],
             'description':'LongDescription',
             'properties':{'Anything':{'text':'Anything',
                                       'href':'anyurl'}}}

唯一需要的是animationurl,它必须是Facebook托管的图像。
这些是以前可能的方式

将文件名更改为GIF
将文件尺寸更改为120 px左右以绕过压缩
更改标头数据或将字节(例如GIF数据中的结尾3B)添加到该文件绕过Facebook图像工具

通过Facebook FBML
通过笔记中的Facebook HMTL标签

第一种工作方法似乎是以某种方式共享当前可用的集合的g通过在其中标记用户的方式在Facebook服务器上创建ifs。除了目前正在使用的GIF之外,我还没有看到任何新的GIF。
第二种是通过Facebook应用程序滥用Facebook API。开发人员在视频嵌入预览中隐藏了GIF。隐藏在GIF或图片中执行。看来,Facebook摄影团队将确保GIF不再存在。保持不变

Facebook Platform以特殊方式处理img标签。发布页面时,Facebook服务器请求任何图像URL,然后提供这些图像,并使用* .facebook.com域重写所有img标签的src属性。这可以保护Facebook用户的隐私并允许他们更好地控制其图像的服务质量。
存在图像缓存的原因有很多:

我们需要一种方法来确保在用户个人资料上显示的图像(没有动画图像,没有50 MB图像等)达到一定程度的质量和统一性
我们需要保护用户的隐私,并且不允许恶意应用程序从图像请求中提取信息直接由查看用户的浏览器制作的图像
对您来说可能最重要,图像缓存使开发人员免于为这些图像提供服务的巨大负担,反而使负担加在了Facebook的资源上。 >最后,正如我在其他地方提到的那样
尽管没有在TOS中的任何地方声明,

通过上传文件,您可以证明您有权分发此图片并且该图片确实不违反服务条款

,因此您可能会在背面碰到在测试用户帐户上进行测试,但在个人帐户上使用漏洞利用程序(如果找到)。我确定您最终会看到帐户被终止。
P.S.不要认为,因为当您浏览网站时,Facebook员工不会看到此信息。漏洞被公知后,将在相同的时间内将其关闭

#2 楼

尽管扩展名是jpeg,但它仍然是gif文件。

要回答您的问题,这就是我发现的内容: (大约50 KB或更少)作为您的个人资料照片(Facebook会放大较大的gif动画,但不会检测到较小的gif)。然后它将出现在您个人资料的相册中。您的图标本身不会被动画化。但是,您将在Facebook个人资料照片文件夹中将其视为动画,然后转到该照片并单击“共享”,它将以动画形式显示在您的墙上。图片。如果基本图像在120x120以下,则动画将在最小化和最大化视图中保持完整。超过该大小的任何内容都需要调整大小以适合最小化的图库缩略图,并且会丢失动画,但是完整大小应保持动画效果。


#3 楼

我研究发现,该图像是由应用程序http://apps.facebook.com/animated-picture/
生成的。您可以在此应用程序上以动画GIF格式从SWF(闪存)生成此类文件,然后发布在您的Facebook上!

评论


不幸的是,该应用程序不再可用。 Facebook应该启用使用gif的选项。

– skan
2014-09-27 12:44

#4 楼

Facebook现在支持本地上传动画gif文件。如果您在“新闻源”或“时间轴”页面上的状态更新框中单击“上传图像”按钮,然后选择要上传的gif动画文件,它将被上传,Facebook会将其转换为.mp4视频文件,然后可以播放就像普通的Facebook视频文件一样,包括在特定帧处暂停的功能,而在查看普通的gif动画文件时则不可以。尽管gif在上传后实际上已转换为视频文件,但它会带有覆盖标签,上面写着GIF。

作为视频文件,Facebook会在Newsfeed中自动播放视频文件(如果您不(不要关闭Facebook设置),因此它的行为就像动画gif(恒定循环)一样,因为Facebook自动循环了30秒以内的视频。