PHP实例————图片等比例缩放功能
在网站开发的过程中,经常要对一些图片进行一些处理,比如说缩放,裁剪,加水印等等。当然这些功能不仅仅可以用在开发网站的过程中,平时需要对图片做一些处理的时候,把这个功能封装到函数中去,要处理图片的时候,根据自己的要求在函数中添加需要的参数不就搞定了么。虽说这个对于小白来说可能一下子上来就点困难,但是一回生二回熟嘛。好了,进入正题。今天分享一个图像等比例缩放的函数。需要中的同学可以稍作修改,然后自己拿去用,就省的自己写了(大神请无视).
1.首先,了解一下图片缩放中多需要的函数
有不太明白的可以用php开发手册去检索一下,上面讲的都是非常明白,是学习时一个非常好的工具,无论是新手还是老鸟。
2.分享一下代码,注释写的很明白了(自我感觉良好,不足之处望大家指正)
<?php function ImageShrink($imgfile,$minx,$miny){ //获取大图信息 $imgarr=getimagesize($imgfile); $maxx=$imgarr[0];//宽 $maxy=$imgarr[1];//长 $maxt=$imgarr[2];//格式 $maxm=$imgarr['mime'];//mime类型 //大图资源 $maxim=imagecreatefromjpeg($imgfile); //缩放判断 if(($minx/$maxx)>($miny/$maxy)){ $scale=$miny/$maxy; }else{ $scale=$minx/$maxx; } //对所求值进行取整 $minx=floor($maxx*$scale); $miny=floor($maxy*$scale); //添加小图 $minim=imagecreatetruecolor($minx,$miny); //缩放函数 imagecopyresampled($minim,$maxim,0,0,0,0,$minx,$miny,$maxx,$maxy); //小图输出 header("content-type:{$maxm}"); //判断图片类型 switch($maxt){ case 1: $imgout="imagegif"; break; case 2: $imgout="imagejpeg"; break; case 3: $imgout="imagepng"; break; } //变量函数 $imgout($minim,'copypic.jpg'); //释放资源 imagedestroy($maxim); imagedestroy($minim); } ImageShrink("picture/apple.jpg",50,50); ?>
3.整段代码中有几个不太容易理解的地方,稍作解释
(1)getimagesize()这个函数的返回值是一个数组,数组中包含这个图片尺寸,格式等信息。根据键值对可以获取其中的值,赋给变量,然后在后面需要用的地方直接传入变量。关于函数,详解请看手册。
(2)进行正比例缩放时,我们需要考虑缩放的比例,拿小图的长宽和大图的长宽做比较,选择比例小的作为缩放比例。这里不是特别好理解,大家可以亲自试试。
(3)大图缩放之后,小图的格式没有发生变化,所以在后面需要函数输出图像的时候,判断图像格式,这里就需要使用变量函数。将函数赋给一个变量,这招用到的时候感觉还是蛮叼的。
(4)保存的图片格式可以自己设置,保存路径与原图片同一路径。其他参数看个人需求了。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

ホットトピック









