Heim php教程 php手册 PHP用GD库生成高质量的缩略图片

PHP用GD库生成高质量的缩略图片

Jun 06, 2016 pm 08:36 PM
gd库 缩略图

PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的缩略图都比较不理想。今天试用PHP,GD库来生成缩略图。虽然并不100%完美。可是也应该可以满足缩略图的要求了。

以下是PHP源代码(ResizeImage.php)。
代码如下:
$FILENAME="image.thumb";
// 生成图片的宽度
$RESIZEWIDTH=400;
// 生成图片的高度
$RESIZEHEIGHT=400;

function ResizeImage($im,$maxwidth,$maxheight,$name){
$width = imagesx($im);
$height = imagesy($im);
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){
if($maxwidth && $width > $maxwidth){
$widthratio = $maxwidth/$width;
$RESIZEWIDTH=true;
}
if($maxheight && $height > $maxheight){
$heightratio = $maxheight/$height;
$RESIZEHEIGHT=true;
}
if($RESIZEWIDTH && $RESIZEHEIGHT){
if($widthratio $ratio = $widthratio;
}else{
$ratio = $heightratio;
}
}elseif($RESIZEWIDTH){
$ratio = $widthratio;
}elseif($RESIZEHEIGHT){
$ratio = $heightratio;
}
$newwidth = $width * $ratio;
$newheight = $height * $ratio;
if(function_exists("imagecopyresampled")){
$newim = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}else{
$newim = imagecreate($newwidth, $newheight);
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
}
ImageJpeg ($newim,$name . ".jpg");
ImageDestroy ($newim);
}else{
ImageJpeg ($im,$name . ".jpg");
}
}

if($_FILES['image']['size']){
if($_FILES['image']['type'] == "image/pjpeg"){
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/x-png"){
$im = imagecreatefrompng($_FILES['image']['tmp_name']);
}elseif($_FILES['image']['type'] == "image/gif"){
$im = imagecreatefromgif($_FILES['image']['tmp_name']);
}
if($im){
if(file_exists("$FILENAME.jpg")){
unlink("$FILENAME.jpg");
}
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);
ImageDestroy ($im);
}
}
?>

以下是测试代码(demo.php)
代码如下:
include('ResizeImage.php');
if(!empty($_POST)){
echo($FILENAME.".jpg?cache=".rand(0,999999));
}
?>




Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie deaktiviere ich die Vorschau der Taskleisten-Miniaturansichten in Win11? Deaktivieren Sie die Anzeige der Miniaturansichten der Taskleistensymbole durch Bewegen der Maus Wie deaktiviere ich die Vorschau der Taskleisten-Miniaturansichten in Win11? Deaktivieren Sie die Anzeige der Miniaturansichten der Taskleistensymbole durch Bewegen der Maus Feb 29, 2024 pm 03:20 PM

Wie deaktiviere ich die Vorschau der Taskleisten-Miniaturansichten in Win11? Deaktivieren Sie die Anzeige der Miniaturansichten der Taskleistensymbole durch Bewegen der Maus

So passen Sie Ordner-Miniaturansichten in Windows 11 22H2 an So passen Sie Ordner-Miniaturansichten in Windows 11 22H2 an Apr 30, 2023 pm 04:52 PM

So passen Sie Ordner-Miniaturansichten in Windows 11 22H2 an

So zeigen Sie Miniaturansichten in Vscode an_So zeigen Sie Miniaturansichten in Vscode an So zeigen Sie Miniaturansichten in Vscode an_So zeigen Sie Miniaturansichten in Vscode an Apr 02, 2024 pm 02:43 PM

So zeigen Sie Miniaturansichten in Vscode an_So zeigen Sie Miniaturansichten in Vscode an

Bedienungsanleitung für die GD-Bibliothek in PHP Bedienungsanleitung für die GD-Bibliothek in PHP May 20, 2023 pm 02:40 PM

Bedienungsanleitung für die GD-Bibliothek in PHP

Was soll ich tun, wenn PHP die GD-Bibliothek nicht öffnen kann? Was soll ich tun, wenn PHP die GD-Bibliothek nicht öffnen kann? Nov 18, 2022 am 10:31 AM

Was soll ich tun, wenn PHP die GD-Bibliothek nicht öffnen kann?

Automatische Miniaturbildgenerierung mit JavaScript Automatische Miniaturbildgenerierung mit JavaScript Jun 16, 2023 pm 12:51 PM

Automatische Miniaturbildgenerierung mit JavaScript

So zeigen Sie Miniaturansichten auf einem USB-Laufwerk an So zeigen Sie Miniaturansichten auf einem USB-Laufwerk an Feb 12, 2024 pm 08:36 PM

So zeigen Sie Miniaturansichten auf einem USB-Laufwerk an

Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten in PHP Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten in PHP Sep 13, 2023 am 08:40 AM

Detaillierte Erläuterung der Schritte zum Generieren von Miniaturansichten in PHP

See all articles