php生成缩略图的三种模式
1、把大图缩略到缩略图指定的范围内,可能有留白(原图细节不丢失)
2、把大图缩略到缩略图指定的范围内,不留白(原图会居中缩放,把超出的部分裁剪掉)
3、把大图缩略到缩略图指定的范围内,不留白(原图会剪切掉不符合比例的右边和下边)
thumb_stand.php
<?php // http://localhost/exa5/thumb_image/thumb_stand.php?w=200&h=200 // 把大图缩略到缩略图指定的范围内,可能有留白(原图细节不丢失) $w = $_GET['w']?$_GET['w']:200; $h = $_GET['h']?$_GET['h']:200; $filename = "stand_test_".$w."_".$h.".jpg"; image_resize( 'test.jpg',$filename, $w, $h); header("content-type:image/png");//设定生成图片格式 echo file_get_contents($filename); function image_resize($f, $t, $tw, $th){ // 按指定大小生成缩略图,而且不变形,缩略图函数 $temp = array(1=>'gif', 2=>'jpeg', 3=>'png'); list($fw, $fh, $tmp) = getimagesize($f); if(!$temp[$tmp]){ return false; } $tmp = $temp[$tmp]; $infunc = "imagecreatefrom$tmp"; $outfunc = "image$tmp"; $fimg = $infunc($f); // 使缩略后的图片不变形,并且限制在 缩略图宽高范围内 if($fw/$tw > $fh/$th){ $th = $tw*($fh/$fw); }else{ $tw = $th*($fw/$fh); } $timg = imagecreatetruecolor($tw, $th); imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh); if($outfunc($timg, $t)){ return true; }else{ return false; } } ?>
로그인 후 복사
thumb_cut.php
<?php // http://localhost/exa5/thumb_image/thumb_cut.php?w=200&h=200 // 把大图缩略到缩略图指定的范围内,不留白(原图会居中缩放,把超出的部分裁剪掉) $w = $_GET['w']?$_GET['w']:200; $h = $_GET['h']?$_GET['h']:200; $filename = "cut_test_".$w."_".$h.".jpg"; image_resize( 'test.jpg',$filename, $w, $h); header("content-type:image/png");//设定生成图片格式 echo file_get_contents($filename); // 按指定大小生成缩略图,而且不变形,缩略图函数 function image_resize($f, $t, $tw, $th){ $temp = array(1=>'gif', 2=>'jpeg', 3=>'png'); list($fw, $fh, $tmp) = getimagesize($f); if(!$temp[$tmp]){ return false; } $tmp = $temp[$tmp]; $infunc = "imagecreatefrom$tmp"; $outfunc = "image$tmp"; $fimg = $infunc($f); // $fw = 10; // $fh = 4; // $tw = 4; // $th = 2; // 把图片铺满要缩放的区域 if($fw/$tw > $fh/$th){ $zh = $th; $zw = $zh*($fw/$fh); $_zw = ($zw-$tw)/2; }else{ $zw = $tw; $zh = $zw*($fh/$fw); $_zh = ($zh-$th)/2; } // echo $zw."<br>"; // echo $zh."<br>"; // echo $_zw."<br>"; // echo $_zh."<br>"; // exit; $zimg = imagecreatetruecolor($zw, $zh); // 先把图像放满区域 imagecopyresampled($zimg, $fimg, 0,0, 0,0, $zw,$zh, $fw,$fh); // 再截取到指定的宽高度 $timg = imagecreatetruecolor($tw, $th); imagecopyresampled($timg, $zimg, 0,0, 0+$_zw,0+$_zh, $tw,$th, $zw-$_zw*2,$zh-$_zh*2); // if($outfunc($timg, $t)){ return true; }else{ return false; } } ?>
로그인 후 복사
thumb_strict.php
<?php // http://localhost/exa5/thumb_image/thumb_strict.php?w=200&h=200 // 把大图缩略到缩略图指定的范围内,不留白(原图会剪切掉不符合比例的右边和下边) $w = $_GET['w']?$_GET['w']:200; $h = $_GET['h']?$_GET['h']:200; $filename = "strict_test_".$w."_".$h.".jpg"; image_resize( 'test.jpg',$filename, $w, $h); header("content-type:image/png");//设定生成图片格式 echo file_get_contents($filename); function image_resize($f, $t, $tw, $th){ // 按指定大小生成缩略图,而且不变形,缩略图函数 $temp = array(1=>'gif', 2=>'jpeg', 3=>'png'); list($fw, $fh, $tmp) = getimagesize($f); if(!$temp[$tmp]){ return false; } $tmp = $temp[$tmp]; $infunc = "imagecreatefrom$tmp"; $outfunc = "image$tmp"; $fimg = $infunc($f); if($fw/$tw > $fh/$th){ $fw = $tw * ($fh/$th); }else{ $fh = $th * ($fw/$tw); } $timg = imagecreatetruecolor($tw, $th); imagecopyresampled($timg, $fimg, 0,0, 0,0, $tw,$th, $fw,$fh); if($outfunc($timg, $t)){ return true; }else{ return false; } } ?>
로그인 후 복사
[文件] thumb_image.rar
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 주 전
By DDD
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

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

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

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

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

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

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7454
15


Cakephp 튜토리얼
1375
52


Steam의 계정 이름 형식은 무엇입니까?
77
11


Win11 활성화 키 영구
40
19


NYT 연결 힌트와 답변
14
9

