0

プロフィール画像に関連する場合、pic_crop のクエリによって返される座標は何を意味しますか。私はそれを理解できないことによってこれを解決しようとしました!

助けてください!

左、上、右、下の値は、例えば左 0.20115 のような小数です。0.20115 とはどういう意味ですか? Facebook プロフィールのソース コードを見ると、Facebook がパーセンテージを使用してプロフィール写真をオフセットしていることがわかります。0.20115 は Facebook の style="left:-23.13%;" のソースにどのように変換されますか?

4

2 に答える 2

4

友達のプロフィールのいくつかの例を見るとpic_crop、左、右、上、下の数字は、写真の全幅のパーセンテージのようです。たとえば、私のプロフィール写真は次の値を返します。

    "width": 180, 
    "height": 161, 
    "left": 0.11466, 
    "top": 0.06897, 
    "right": 0.88534, 
    "bottom": 0.93103

Facebook のタイムラインを調べると、プロフィール写真が 160px の正方形で表示されています。Facebook は写真を表示するためにトリミングするのではなく、160 ピクセルの正方形のウィンドウの背後にあるトリミングされた領域に合わせてサイズを調整し、そのウィンドウの下に写真を配置して、トリミングされた写真が表示されるようにします。

top: 0.6897 と bottom: 0.93103 の「上」と「下」の値は、「垂直トリミングなし」と同等のようです。これは、私の写真や他の友人の写真にも見られます。したがって、0.93193 - 0.06897 = 0.86206 は、写真の高さの 100% が使用されることを意味します。(横クロップしない場合は左右同じ値になります。)

私の写真には水平方向の切り抜きがあります。私の写真の左と右の数字の場合、式は (右 - 左) ÷ (0.93103-0.06897) のようです。私の写真では、これは 0.89400 になります。したがって、160 × 180 / 161 = 179px × 0.89400 = 160px です。私は他のいくつかの友人の写真でこれを試しましたが、これは機能します。「右 - 左」を「上 - 下」に置き換えると、垂直方向の切り抜きのある写真でも機能するようです。

Facebook のタイムラインで、カバー写真の img タグが styled になっていますleft:-5.93%;。左と右のクロップ量が同じなので、これは 9.5px になるはずです。9.5 / 160 = 5.93%。

非対称作物のスケーリングはまだ解明していません。

Facebookがこのように簡単にできるようになったら、きっと気に入るはずです!

アップデート

今夜の開発者のブログ投稿を読むだけで、トリミングされたプロフィール写真を取得する別の方法があります:profile_picテーブルです。

SELECT url, real_width, real_height FROM profile_pic
WHERE id = me()
  AND width=160
  AND height=160

返されたのurlは、指定に従ってスケーリングされたプロフィール写真widthでありheight、多かれ少なかれ、プロフィール所有者の意図に合わせてトリミングされています。

于 2012-08-22T15:59:47.457 に答える
-1

https://developers.facebook.com/docs/reference/fql/profile/

pic_crop:次を含むオブジェクト:uri:クエリ対象のオブジェクトの最大サイズの正方形のプロフィール写真へのURL。幅、高さ:この画像のピクセルサイズ。左、上、右、下:ユーザーが選択したこのプロフィール写真の切り抜きのピクセル座標。

さて、それはおそらく不明確ですか?

于 2012-08-20T12:20:32.483 に答える