Maison  >  Article  >  développement back-end  >  PHP utilise la bibliothèque GD pour générer un exemple de code d'image miniature de haute qualité

PHP utilise la bibliothèque GD pour générer un exemple de code d'image miniature de haute qualité

怪我咯
怪我咯original
2017-07-12 15:07:221394parcourir

Sur les sites Web, la bibliothèque GD est généralement utilisée pour générer des vignettes, ou pour ajouter des filigranes aux images, ou pour générer des caractères chinois codes de vérification, ou pour générer des rapports sur les données du site Web. , etc. . Pour traiter des images en PHP, vous pouvez utiliser la bibliothèque GD. La bibliothèque GD prenait initialement en charge le GIF. Cependant, comme GIF utilisait l'algorithme LZW controversé en matière de droits d'auteur, cela entraînerait des problèmes juridiques, donc toute la prise en charge GIF a été déplacée de la version 1.6 de la bibliothèque GD. à partir de là, mais il a été ajouté dans la version 2.0.28 de la bibliothèque GD. Si vous utilisez une version de la bibliothèque GD entre les deux, les fonctions liées au GIF ne sont pas disponibles. Cet article présente principalement l'exemple de code pour générer des images miniatures de haute qualité en PHP à l'aide de la bibliothèque GD

Ce qui suit est le code source PHP (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); 
} 
} 
?>

Ce qui suit est le code de test (demo.php) Le code est le suivant :

<?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>


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn