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 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
