PHP上传正确尺寸的图像
我知道这个问题很常见,但我问题的要点是,我想知道facebook或其他一些网站是如何上传正确大小的图片的。例如如果我们上传一张尺寸为:宽:1000px,高:20px的图片。然后facebook会用这张照片更新状态更新,但会以正确的比例缩小图像大小。它的JU缩小了图片的比例,但我们可以知道图片的宽度非常大(我自己的词是非常高的宽度:P),只要长高的图片也以正确的比例发布PHP上传正确尺寸的图像,php,Php,我知道这个问题很常见,但我问题的要点是,我想知道facebook或其他一些网站是如何上传正确大小的图片的。例如如果我们上传一张尺寸为:宽:1000px,高:20px的图片。然后facebook会用这张照片更新状态更新,但会以正确的比例缩小图像大小。它的JU缩小了图片的比例,但我们可以知道图片的宽度非常大(我自己的词是非常高的宽度:P),只要长高的图片也以正确的比例发布 我已经包括了上面的图像示例。facebook如何计算图片的大小n比,并通过保持正确的尺寸,同时缩小图片的比例,来回传图片 我
我已经包括了上面的图像示例。facebook如何计算图片的大小n比,并通过保持正确的尺寸,同时缩小图片的比例,来回传图片 我认为有几个因素
当然,您也可以检查图像是16:9还是4:3,以确定图像的最大宽度,如第一个示例。此代码相当详细,但可能会让您了解如何计算图像尺寸 参数是源宽度和目标最大调整宽度和高度
function image_resize_dimensions($source_width,$source_height,$thumb_width,$thumb_height)
{
$source_ratio = $source_width / $source_height;
$thumb_ratio = $thumb_width / $thumb_height;
// Ratio is Taller
if ($thumb_ratio > $source_ratio)
{
$result_height = $thumb_height;
$result_width = $thumb_height * $source_ratio;
}
// Ratio is Wider
elseif ($thumb_ratio < $source_ratio)
{
$result_width = $thumb_width;
$result_height = $thumb_width / $source_ratio;
}
// Ratio the Same
elseif($thumb_ratio == $source_ratio)
{
$result_height = $thumb_height;
$result_width = $thumb_width;
}
return array('x'=>$result_width,'y'=>$result_height);
}
function image\u resize\u维度($source\u width、$source\u height、$thumb\u width、$thumb\u height)
{
$source\u ratio=$source\u width/$source\u height;
$thumb_比率=$thumb_宽度/$thumb_高度;
//比例更高
如果($thumb\u ratio>$source\u ratio)
{
$result\u height=$thumb\u height;
$result\u width=$thumb\u height*$source\u ratio;
}
//比例更大
elseif($thumb\u比率<$source\u比率)
{
$result\u width=$thumb\u width;
$result\u height=$thumb\u width/$source\u ratio;
}
//比例相同
elseif($thumb\u ratio==$source\u ratio)
{
$result\u height=$thumb\u height;
$result\u width=$thumb\u width;
}
返回数组('x'=>$result\u宽度,'y'=>$result\u高度);
}
实际发生的情况是在服务器上重新创建图像,并通过乘数(宽度*.5)进行缩放。因此,实际上,您根本看不到原始图像。您正在看到服务器创建的一个新图像。@Scott-我无法理解您:(我理解这些点,但我无法理解比率的最后部分,即您写入16:9和4:3的部分。是的,我在调用image_resize_jpg()时已经完成了高度thanx alot dude!!thanx alot!:)的百分比计算,第一个$image参数是指向源的路径,第二个$filename是目标路径,第三个/第四个$thumb_宽度/高度是重新调整大小的图像的最大值,第五个$maximize默认为false,但设置为true时将裁剪图像的部分以强制标注,第六个$quality是从0到100的图像质量,如果要传入现有对象,请输入第7$image\u对象。