2017-11-11 1 views
3

안녕하세요 저는 offset_y가 페이스 북 그래프 API https://developers.facebook.com/docs/graph-api/reference/cover-photo/에서 어떤 의미인지 이해하려고합니다.facebook graph api : offset_y offset_x

나는이 관련 게시물을 이해하려고 노력했지만 할 수는 없습니다. how to compute Facebook graph api cover offset_y to pixel?

예를 들어,이 이벤트. https://www.facebook.com/events/1119146318216486/. 에 ''offset_y을 ": (20 ')가 생성하는 그래프 API를

enter image description here

하지만, 실제 오프셋을 호출 할 때하는 것은 -4px입니다 : enter image description here

어떤 도움을 크게 감사 감사하겠습니다.

+0

다섯 살입니다. 그 문서는 당시 그 가치보다 실제로 그 가치가 무엇을 의미하는지에 대해 좀 더 명백하게 드러났습니다. 나는 그것을 시도하고 그것을 이해하기위한 시작점으로 사용합니다. (그러나 지금까지이 문제에 관해서 제기 된 모든 의문에서, 모든 것이 신비에 가깝고 실제로 아무리 많은 행운을 낳지도 않았거나 실용 사례에 실제로 적용했다면 [정확히 당신의 것, btw.], 행운을 빌어 요 .-) – CBroe

답변

2

offset_xoffset_y의 값은 픽셀 값이 아니라 원본 이미지 크기의 백분율입니다.

퍼센트의 범위는 0에서 100까지이며 공간에 대한 크기가 조정 된 이미지의 오버플로 오프셋 값의 백분율입니다.

예를 들어 720x480 픽셀의 이미지가 있습니다. 표지 사진 공간은 851x315 픽셀이므로 크기가 851x567.33 픽셀 인 사진은 그 공간에 맞게 크기가 조정됩니다. 내 표지를 배치 할 때 이미지를 중간까지 드래그하면 offset_y이 반환되며 50이됩니다. 이것은 표지 사진 슬롯에 맞지 않는 "나머지"공간의 50 %로 해석됩니다.

"남은"세로 (y) 공간은 567.33 - 315 = 252.33 픽셀입니다. 해당 공간의 50 %는 126.167입니다. 내 top 오프셋은이 경우 -126.167 픽셀입니다.

그래서 offset_xoffset_y은 크기 조정 된 이미지를 Facebook의 사진 공간에 배치하는 데 필요한 픽셀 이동의 비율입니다. 다른 질문이 언급되는

// These values retreived ahead of time (Graph API, etc.) 
 
var offset_x = 0; 
 
var offset_y = 50; 
 
var fbCoverPhotoWidth = 851; // Known value, in pixels 
 
var fbCoverPhotoHeight = 315; // Known value, in pixels 
 

 
// Create an image from the cover photo URL returned by the Graph API 
 
var img = new Image(); 
 
img.src = "https://scontent.xx.fbcdn.net/v/t1.0-0/p480x480/your-photo-url-here.jpg"; 
 

 
// Calculate the scaling ratio 
 
var ratio = Math.max(fbCoverPhotoWidth/img.width, fbCoverPhotoHeight/img.height); 
 

 
// Convert the offset percentages to pixel values 
 
var offset_x_pixels = Math.ceil(((img.width * ratio) - fbCoverPhotoWidth) * (offset_x/100)); 
 
var offset_y_pixels = Math.ceil(((img.height * ratio) - fbCoverPhotoHeight) * (offset_y/100)); 
 

 
console.log(offset_x_pixels); 
 
console.log(offset_y_pixels);

+0

감사합니다, 당신의 위대한 사람 :) – dgamma3

+0

도와 줘서 기뻐요! 이 프로젝트의 행운을 빈다. –