0

基本上我想做的是为我的个人网站创建一个封面,就像 facebook 一样。基本上,我使用与 facebook 相同的封面布局,以便用户在我的网站和 facebook 上使用相同的封面时可以获得相同的结果。

我坚持的部分是“拖动图像以定位封面”的事情。Facebook 使用一些算法在拖动时将封面图像大小转换为不同的东西。例如,如果原始图像尺寸为920x720,则同一图像在facebook设置封面页面(将图像拖动到封面物位置)的尺寸为851x638。

我只是想知道 facebook 使用什么算法来设置图像尺寸(从 720 到 638)

注意:封面必须是完美的像素

我知道 facebook 的封面尺寸是 851x315,所以这就是我正在做的事情:

    //$x =  X origin cordinate variable obtained by dragging image 
    //$y =  Y origin cordinate variable obtained by dragging image 
    list($k, $l) = getimagesize($src); // $src == image source 
    //$w = Needs to be calculated
    //$h = Needs to be calculated 
    $img_r = imagecreatefromjpeg($src);
    $dst_r = ImageCreateTrueColor( 854,316 );
    imagecopyresampled($dst_r,$img_r,0,0,$x,$y,$w,$h,$k,$l);
    imagejpeg($dst_r,$src,$jpeg_quality);
    $img_name = writeToImage($src, $des); //writeToImage() is just a demo function created by me to do some other things with them which do not affect this part of code

    echo $img_name;

我需要弄清楚 facebook 如何从前一个计算图像的新尺寸。它是取决于图像的实际(原始)大小还是取决于其他一些因素?

4

1 回答 1

0

缩放图像的公式非常简单。

$aspect_ratio = $original_width / $original_height;

$new_width = $new_height * $aspect_ratio;

或者

$new_height = $new_width / $aspect_ratio;
于 2013-07-29T02:39:02.707 回答