Home  >  Article  >  Backend Development  >  Detailed explanation of php proportional scaling image examples

Detailed explanation of php proportional scaling image examples

怪我咯
怪我咯Original
2017-07-10 11:53:521057browse

This article mainly introduces the relevant information of PHP proportional scaling pictures

Go directly to the code, imgzip($src,$newwid,$newhei)function What is brought in are the original image, the width required for scaling, and the length of scaling. The code is all noted

<?php 

//压缩图片 缩略图

$src= "xiezheng.jpg";
$newwid=640;
$newhei= 480;
function imgzip($src,$newwid,$newhei){
 $imgInfo = getimagesize($src);

 $imgType = image_type_to_extension($imgInfo[2], false);

 $fun = "imagecreatefrom{$imgType}";

//声明图片 打开图片 在内存中
 $image = $fun($src);
//方便配置长度宽度、高度,设置框为变量wid,高度为hei
 $wid=$imgInfo[0];
 $hei=$imgInfo[1];
//判断长度和宽度,以方便等比缩放,规格按照500, 320
 if($wid>$hei){
  $wid=$newwid;
  $hei=$newwid/($wid/$hei);
 }else {
  $wid = $newhei * ($wid / $hei);
  $hei = $newhei;
 }

//在内存中建立一张图片
 $images2 = imagecreatetruecolor($newwid, $newhei); //建立一个500*320的图片

//将原图复制到新建图片中
//imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)

 imagecopyresampled($images2, $image, 0, 0, 0, 0, $wid,$hei, $imgInfo[0],$imgInfo[0]);

//销毁原始图片
 imagedestroy($image);


//直接输出图片文件

 header("Content-type: ".$imgInfo[‘mime‘]);
 imagejpeg($images2);

//保存图片 到新文件
 imagejpeg($images2, ‘new.jpg‘, 100); //10代码输出图片的质量 0-100 100质量最高

//销毁
 imagedestroy($images2);
}
imgzip($src,$newwid,$newhei);


?>

Effect

Before compression

##After compression

The following is another method


Create a new file index.php, you need to have a picture q.jpg in the statistics directory (the name of the picture can be changed according to the source code)

The source code is as follows:

<?php
$filename="q.jpg";
$per=0.3;
list($width, $height)=getimagesize($filename);
$n_w=$width*$per;
$n_h=$height*$per;
$new=imagecreatetruecolor($n_w, $n_h);
$img=imagecreatefromjpeg($filename);
//拷贝部分图像并调整
imagecopyresized($new, $img,0, 0,0, 0,$n_w, $n_h, $width, $height);
//图像输出新图片、另存为
imagejpeg($new, "q1.jpg");
imagedestroy($new);
imagedestroy($img);
?>

After running it with a browser, there will be q1.jpg in the directory at the same level as index.php. This picture is a scaled picture. The path can be found in the source code. To make changes inside, you can put it in your own project or write a method

The above is the detailed content of Detailed explanation of php proportional scaling image examples. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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