PHP 썸네일 클래스(호출 예제 포함)
本文介绍下,php实现的一个缩略图类,支持加载图片文件与加载图片字符串,按比例拉伸等,代码后面有调用示例供参考。
分享个php缩略图类,可以实现如下的功能: 1,支持加载图片文件和加载图片字符串 2,可以将缩略图输出到浏览器和保持缩略图文件 3,支持gif,png,jpeg类型的缩略 4,可以设定是否按比例来拉伸代码如下: <?php /** * 生成缩略图(支持加载图片文件和字符串2种方式) * @param $maxWidth 缩略图最大宽度 * @param $maxHeight 缩略图最大高度 * @param bool $scale 是否按比例缩小,否则拉伸 * @param bool $inflate 是否放大以来填充缩略图 * @edit by bbs.it-home.org */ class Thumbnail { private $maxWidth; private $maxHeight; private $scale; private $inflate; private $types; private $imgLoaders; private $imgCreators; private $source; private $sourceWidth; private $sourceHeight; private $sourceMime; private $thumb; private $thumbWidth; private $thumbHeight; public function __construct($maxWidth, $maxHeight, $scale = true, $inflate = true) { $this->maxWidth = $maxWidth; $this->maxHeight = $maxHeight; $this->scale = $scale; $this->inflate = $inflate; $this->types = array( 'image/jpeg', 'image/png', 'image/gif' ); //加载MIME类型图像的函数名称 $this->imgLoaders = array( 'image/jpeg' => 'imagecreatefromjpeg', 'image/png' => 'imagecreatefrompng', 'image/gif' => 'imagecreatefromgif' ); //储存创建MIME类型图片的函数名称 $this->imgCreators = array( 'image/jpeg' => 'imagejpeg', 'image/png' => 'imagepng', 'image/gif' => 'imagegif' ); } /** * 文件方式加载图片 * @param string $image 源图片 * @return bool */ public function loadFile($image){ if(!$dims = @getimagesize($image)){ trigger_error("源图片不存在"); } if(in_array($dims['mime'], $this->types)){ $loader = $this->imgLoaders[$dims['mime']]; $this->source = $loader($image); $this->sourceWidth = $dims[0]; $this->sourceHeight = $dims[1]; $this->sourceMime = $dims['mime']; $this->initThumb(); return TRUE; }else{ trigger_error('不支持'.$dims['mime']."图片类型"); } } /** * 字符串方式加载图片 * @param string $image 字符串 * @param string $mime 图片类型 * @return type */ public function loadData($image,$mime){ if(in_array($mime, $this->types)){ if($this->source = @imagecreatefromstring($image)){ $this->sourceWidth = imagesx($this->source); $this->sourceHeight = imagesy($this->source); $this->sourceMime = $mime; $this->initThumb(); return TRUE; }else{ trigger_error("不能从字符串加载图片"); } }else{ trigger_error("不支持".$mime."图片格式"); } } /** * 生成缩略图 * @param string $file 文件名。如果不为空则储存为文件,否则直接输出到浏览器 */ public function buildThumb($file = null){ $creator = $this->imgCreators[$this->sourceMime]; if(isset($file)){ return $creator($this->thumb,$file); }else{ return $creator($this->thumb); } } /** * 处理缩放 */ public function initThumb(){ if($this->scale){ if($this->sourceWidth > $this->sourceHeight){ $this->thumbWidth = $this->maxWidth; $this->thumbHeight = floor($this->sourceHeight*($this->maxWidth/$this->sourceWidth)); }elseif($this->sourceWidth < $this->sourceHeight){ $this->thumbHeight = $this->maxHeight; $this->thumbWidth = floor($this->sourceWidth*($this->maxHeight/$this->sourceHeight)); }else{ $this->thumbWidth = $this->maxWidth; $this->thumbHeight = $this->maxHeight; } } $this->thumb = imagecreatetruecolor($this->thumbWidth, $this->thumbHeight); if($this->sourceWidth <= $this->maxWidth && $this->sourceHeight <= $this->maxHeight && $this->inflate == FALSE){ $this->thumb = $this->source; }else{ imagecopyresampled($this->thumb, $this->source, 0, 0, 0, 0, $this->thumbWidth, $this->thumbHeight, $this->sourceWidth, $this->sourceHeight); } } public function getMine(){ return $this->sourceMime; } public function getThumbWidth(){ return $this->thumbWidth; } public function getThumbHeight(){ return $this->thumbHeight; } } /** * 缩略图类调用示例(文件) */ $thumb = new Thumbnail(200, 200); $thumb->loadFile('wap.gif'); header('Content-Type:'.$thumb->getMine()); $thumb->buildThumb(); /** * 缩略图类调用示例(字符串) */ $thumb = new Thumbnail(200, 200); $image = file_get_contents('wap.gif'); $thumb->loadData($image, 'image/jpeg'); $thumb->buildThumb('wap_thumb.gif'); ?> 로그인 후 복사 |

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

Alipay PHP ...

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

이 기사에서는 프레임 워크에 사용자 정의 기능 추가, 아키텍처 이해, 확장 지점 식별 및 통합 및 디버깅을위한 모범 사례에 중점을 둡니다.

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...
