offset_x
및 offset_y
의 값은 픽셀 값이 아니라 원본 이미지 크기의 백분율입니다.
퍼센트의 범위는 0에서 100까지이며 공간에 대한 크기가 조정 된 이미지의 오버플로 오프셋 값의 백분율입니다.
예를 들어 720x480 픽셀의 이미지가 있습니다. 표지 사진 공간은 851x315 픽셀이므로 크기가 851x567.33 픽셀 인 사진은 그 공간에 맞게 크기가 조정됩니다. 내 표지를 배치 할 때 이미지를 중간까지 드래그하면 offset_y
이 반환되며 50
이됩니다. 이것은 표지 사진 슬롯에 맞지 않는 "나머지"공간의 50 %로 해석됩니다.
"남은"세로 (y) 공간은 567.33 - 315 = 252.33 픽셀입니다. 해당 공간의 50 %는 126.167입니다. 내 top
오프셋은이 경우 -126.167 픽셀입니다.
그래서 offset_x
및 offset_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);
다섯 살입니다. 그 문서는 당시 그 가치보다 실제로 그 가치가 무엇을 의미하는지에 대해 좀 더 명백하게 드러났습니다. 나는 그것을 시도하고 그것을 이해하기위한 시작점으로 사용합니다. (그러나 지금까지이 문제에 관해서 제기 된 모든 의문에서, 모든 것이 신비에 가깝고 실제로 아무리 많은 행운을 낳지도 않았거나 실용 사례에 실제로 적용했다면 [정확히 당신의 것, btw.], 행운을 빌어 요 .-) – CBroe