Facebook是否公开了裁剪更大版本用户的偏移定位';s配置文件缩略图?
我最近注意到,在新的时间线配置文件的布局中,Facebook在时间线和好友列表中广泛使用用户配置文件图像的“普通”版本(阅读:更大)。正如我们所知,此图像是通过以下方式查询图形来检索的:Facebook是否公开了裁剪更大版本用户的偏移定位';s配置文件缩略图?,facebook,facebook-graph-api,facebook-fql,thumbnails,crop,Facebook,Facebook Graph Api,Facebook Fql,Thumbnails,Crop,我最近注意到,在新的时间线配置文件的布局中,Facebook在时间线和好友列表中广泛使用用户配置文件图像的“普通”版本(阅读:更大)。正如我们所知,此图像是通过以下方式查询图形来检索的: https://graph.facebook.com/[userid]/picture?type=normal 当然,这张图片不能保证是方形的。然而,Facebook使用元素级CSS手动定位和裁剪它(见下图)。定位很有趣,因为它似乎是在页面呈现之前生成的 见: 注意如何应用元素级CSS样式。在这种情况下,它
https://graph.facebook.com/[userid]/picture?type=normal
当然,这张图片不能保证是方形的。然而,Facebook使用元素级CSS手动定位和裁剪它(见下图)。定位很有趣,因为它似乎是在页面呈现之前生成的
见:
注意如何应用元素级CSS样式。在这种情况下,它是一个顶部偏移:
style="top:-50%"
我假设这是从某处(图形、db等)提取任意偏移/定位值,而不是使用客户端JS进行面部检测,因为设置新Facebook个人资料图片的过程(通常)涉及手动裁剪您的面部。亲自查看:更改您的个人资料图片,如果比例不是方形,则有一个中间的手动裁剪步骤
此外,此图像通过传递的x、y、宽度、高度和其他各种参数发布到/photo.php。我知道其中一些用于生成50x50平方米的作物,但它也必须存储在其他地方,对吗
我的问题是,Facebook目前是否公开了一种检索这些偏移值的方法,这样我们就可以准确地对较大的个人资料图片进行方形裁剪,而不必依靠面部识别或客户端处理来确保主题居中。向夏奇拉问好
如您所见,最小的是裁剪版本(手动+人脸识别),很容易计算中间图像中的相对位置,当您有X&Y坐标和W&H时,他们可能会将其存储在数据库中,并计算百分比,服务器端。到目前为止,我还没有看到他们提供这样的服务。您最终可以仅使用这些图像来计算,但这将花费您的成本。将背景图像设置为
center
,希望一切顺利:)在这里回答我自己的问题。
通过查看,我注意到通过对概要文件表的FQL查询可以获得以下内容:
picu-crop
指向对象的最大大小的方形配置文件图片的URL
正在查询。图像的宽度至少为100px此URL可能是
空白。
我强调最后一点
响应如下所示:
<fql_query_response list="true">
<profile>
<pic_crop>
<uri>https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/xxxxxx_xxxxxxxx_xxxxxxxxxx_n.jpg</uri>
<width>180</width>
<height>173</height>
<left>0.08468</left>
<top>0.06897</top>
<right>0.91532</right>
<bottom>0.93103</bottom>
</pic_crop>
</profile>
</fql_query_response>
https://fbcdn-profile-a.akamaihd.net/hprofile-ak-snc4/xxxxxx_xxxxxxxx_xxxxxxxxxx_n.jpg
180
173
0.08468
0.06897
0.91532
0.93103
瞧,图像大小和裁剪位置。当然,唯一需要注意的是最后一点的粗体字。URL可能是空的。我也面临同样的问题。pic_crop as for documentation包含用户为此配置文件图片选择的裁剪的像素坐标。 这意味着,如果用户没有选择160x160作物,您将获得纵向或横向。 我从测试中收到的数据证实了这一点:
{
"uri": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/xxxxxxxxx_n.jpg",
"width": 180,
"height": 286,
"left": 0,
"top": 0,
"right": 1,
"bottom": 1
}
从这些信息中,我无法理解如何使160x160正确的作物位于面中心这在Graph API中也可用: