你好,我正在努力理解offset_y在facebook、图形API https://developers.facebook.com/docs/graph-api/reference/cover-photo/中的含义。
我试过理解这个相关的职位,但不能。y to pixel?
例如,这个事件。https://www.facebook.com/events/1119146318216486/。在调用图形api时生成“offset_y”:20

但是,实际的抵消量是-4px:

如能提供任何帮助,将不胜感激。
发布于 2017-11-21 23:11:48
offset_x和offset_y的值是原始图像大小的百分比,而不是像素值。
百分比从0到100不等,是空间大小调整图像溢出偏移值的百分比。
例如,我有一个图像是720x480 px。封面照片空间是851x315 px,所以当照片调整大小以适应该空间时,它是851x567.33px。如果我将该图像拖到一半以下,当我将它定位为我的封面时,返回的offset_y将是50。这转化为50%的“剩菜”空间,不适合封面照片插槽。
“剩余物”垂直(y)空间为567.33 - 315 = 252.33 px。50%的空间是126.167。在这种情况下,我的top偏移量将是-126.167 px。
因此,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);
https://stackoverflow.com/questions/47238129
复制相似问题