ホームページ >バックエンド開発 >PHPチュートリアル >PHPで画像の比例スケーリングを実装する方法
PHPを使用して画像を拡大縮小する方法を主に紹介し、元の画像の必要な幅と長さを指定できます。
この記事では、PHPでの画像圧縮方法を紹介します。読者は、特定の内容に応じて参照または改良できます。上記のコードでは、imgzip($src,$newwid,$newhei) 関数が元の画像、スケーリングに必要な幅、およびスケーリングの長さを取得します。 <?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[1]);
//销毁原始图片
imagedestroy($image);
//直接输出图片文件
header("Content-type: ".$imgInfo['mime']);
imagejpeg($images2);
//保存图片 到新文件
imagejpeg($images2, 'new.jpg', 100); //10代码输出图片的质量 0-100 100质量最高
//销毁
imagedestroy($images2);
}
imgzip($src,$newwid,$newhei);
?>
新しいファイルindex.phpを作成します。これは統計ディレクトリにある必要があります。画像はq.jpgです。 (画像の名前はソースコードに応じて変更できます)
ソースコードは以下の通りです:
<?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); ?>
ブラウザで実行するとindexと同じ階層のディレクトリにq1.jpgが出来ます。 php. この画像はetc. 拡大縮小した画像のパスはソースコード内で自分で変更することもできますし、自分のプロジェクトに入れたり、メソッドを書いたりすることもできます
以上がPHPで画像の比例スケーリングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。