Heim > Backend-Entwicklung > PHP-Tutorial > PHP verwendet die GD-Bibliothek, um hochwertigen Beispielcode für Miniaturbilder zu generieren

PHP verwendet die GD-Bibliothek, um hochwertigen Beispielcode für Miniaturbilder zu generieren

怪我咯
Freigeben: 2023-03-13 18:22:01
Original
1431 Leute haben es durchsucht

Auf Websites wird die GD-Bibliothek normalerweise zum Generieren von Miniaturansichten oder zum Hinzufügen von Wasserzeichen zu Bildern oder zum Generieren chinesischer Schriftzeichen Verifizierungscodes oder zum Erstellen von Berichten über Website-Daten verwendet , usw. . Um Bilder in PHP zu verarbeiten, können Sie die GD-Bibliothek verwenden. Da GIF jedoch den urheberrechtlich umstrittenen LZW-Algorithmus verwendete, würde dies zu rechtlichen Problemen führen, weshalb die gesamte GIF-Unterstützung aus der GD-Bibliothek Version 1.6 verschoben wurde Ab. Außer, aber es wurde wieder in der GD-Bibliotheksversion 2.0.28 hinzugefügt. Wenn Sie eine Version der GD-Bibliothek zwischen beiden verwenden, sind die GIF-bezogenen -Funktionen nicht verfügbar. In diesem Artikel wird hauptsächlich der Beispielcode zum Generieren hochwertiger Miniaturbilder in PHP mithilfe der GD-Bibliothek vorgestellt

Das Folgende ist der PHP-Quellcode (ResizeImage.php).

<?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 < $heightratio){ 
$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[&#39;image&#39;][&#39;size&#39;]){ 
if($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/pjpeg"){ 
$im = imagecreatefromjpeg($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
}elseif($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/x-png"){ 
$im = imagecreatefrompng($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
}elseif($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/gif"){ 
$im = imagecreatefromgif($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
} 
if($im){ 
if(file_exists("$FILENAME.jpg")){ 
unlink("$FILENAME.jpg"); 
} 
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME); 
ImageDestroy ($im); 
} 
} 
?>
Nach dem Login kopieren

Das Folgende ist der Testcode (demo.php) Der Code lautet wie folgt:

<?php 
include(&#39;ResizeImage.php&#39;); 
if(!empty($_POST)){ 
echo($FILENAME.".jpg?cache=".rand(0,999999)); 
} 
?> 
<form name="test" action="?submit=true" enctype="multipart/form-data" method="post" > 
<input type="file" name="image" size="50" value="浏览"><p> 
<input type="submit" value="上传图片"> 
</form>
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonPHP verwendet die GD-Bibliothek, um hochwertigen Beispielcode für Miniaturbilder zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage