Home > Backend Development > PHP Tutorial > Cropping and scaling of PHP images_PHP tutorial

Cropping and scaling of PHP images_PHP tutorial

WBOY
Release: 2016-07-13 10:33:42
Original
821 people have browsed it

The images are too large and have inconsistent specifications. The display control needs to be completed by JavaScript. When used on mobile devices, the display effect is not good and the traffic is huge. The images in the existing image library need to be processed once to generate In line with the thumbnails for mobile devices, the work originally done by JS on the client side is transferred to the server side using PHP's GD library for centralized processing.

Image source and required size:

$src_img = "wallpaper.jpg";
$dst_w = 300;
$dst_h = 200;
Copy after login

Crop the image to maximize the image area and scale it to the specified size.

I initially used the imagecopyresized method to reduce the image proportionally. After actual operation, I found that the image was very dry after being reduced. Then switch to the imagecopysampled method, which will resample the image and smooth the reduced image, greatly improving the clarity.

<?php
list($src_w,$src_h)=getimagesize($src_img);  // 获取原图尺寸
$dst_scale = $dst_h/$dst_w; //目标图像长宽比
$src_scale = $src_h/$src_w; // 原图长宽比

if($src_scale>=$dst_scale)
{  
	// 过高
	$w = intval($src_w);
	$h = intval($dst_scale*$w);
	$x = 0;
	$y = ($src_h - $h)/3;
}
else
{ 
// 过宽
	$h = intval($src_h);
	$w = intval($h/$dst_scale);
	$x = ($src_w - $w)/2;
	$y = 0;
}
// 剪裁
$source=imagecreatefromjpeg($src_img);
$croped=imagecreatetruecolor($w, $h);
imagecopy($croped,$source,0,0,$x,$y,$src_w,$src_h);
// 缩放
$scale = $dst_w/$w;
$target = imagecreatetruecolor($dst_w, $dst_h);
$final_w = intval($w*$scale);
$final_h = intval($h*$scale);
imagecopysampled($target,$croped,0,0,0,0,$final_w,$final_h,$w,$h);
// 保存
$timestamp = time();
imagejpeg($target, "$timestamp.jpg");
imagedestroy($target);
?>
Copy after login

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/752444.htmlTechArticleThe picture is too large and the specifications are not uniform. The display control needs to be completed by JavaScript. It is displayed when used on mobile devices. The effect is not good and the traffic is huge. It is necessary to update the pictures in the existing picture library...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template