Maison >développement back-end >tutoriel php >Explication détaillée de la solution à la distorsion floue des vignettes de DedeCMS

Explication détaillée de la solution à la distorsion floue des vignettes de DedeCMS

黄舟
黄舟original
2017-04-01 09:41:161568parcourir

Cet article présente principalement la solution parfaite au flou de distorsion DedeCMSThumbnaildistorsion, puisque dede uniquement génère une vignette de taille unique par défaut, ce qui ne peut pas répondre aux besoins de la plupart des sites Web, cet article donne une solution ultime et parfaite. Les amis dans le besoin peuvent s'y référer

Puisque dede ne génère qu'une seule vignette par défaut. Des vignettes de différentes tailles. sont souvent incohérentes en taille et en proportion dans les différentes pages d'un site Web, ce qui entraîne des vignettes peu claires et déformées. La méthode fournie ci-dessous résout parfaitement ce problème

adresse de téléchargement du modèle dedecms : www.php.cn/xiazai/. code/dedecms

Utilisation :

1. Pour obtenir des vignettes claires, elles doivent être suffisamment grandesImage et la recadrer avec précision, et la méthode suivante consiste à la recadrer en fonction sur la vignette (car certains sites Web de l'image originale ont des filigranes), vous devez donc vous assurer que la vignette originale est suffisamment grande, vous devez donc effectuer certains réglages : Système - Paramètres de pièce jointe, définissez la largeur et la hauteur par défaut des vignettes sur être supérieur ou égal à la taille maximale de toutes les vignettes appelées dans l'ensemble de votre site. Veuillez également le couper à une taille suffisamment grande pour un découpage manuel (pas besoin de découpage manuel)

2. Ouvrez inclure. /extend.func.php (Remarque : ce fichier est préparé pour le développement secondaire et utilisé pour l'extension de la méthode fonctionnelle)

Ajoutez le code suivant avant le dernier ?>

Le code est la suivante :

function thumb($imgurl, $
width
, $
height
, $bg = true)
 {
 global $cfg_
main
site,$cfg_multi_site;
 $thumb = eregi("http://",$imgurl)?
str_replace
($cfg_mainsite,'',$imgurl):$imgurl;
 
list
($thumbname,$extname) = 
explode
('.',$thumb);
 $
new
thumb = $thumbname.'_'.$width.'_'.$height.'.'.$extname;
if
(!$thumbname || !$extname || !
file_exists
(DEDEROOT.$thumb)) 
return
 $imgurl;
 if(!file_exists(DEDEROOT.$newthumb))
{
 
include_once
 DEDEINC.'/image.func.php';
 if($bg==true)
 {
 ImageResizeNew(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
 }
 
else
 {
 ImageResize(DEDEROOT.$thumb, $width, $height, DEDEROOT.$newthumb);
 }
 }
 return $cfg_multi_site=='Y'?$cfg_mainsite.$newthumb:$newthumb;
 }

Méthode d'appel :

Tag :

 [field:picname function='thumb(@me,$width,$height,$bg)'/]

Description du paramètre :

$width : largeur de la vignette (integer)
$height : hauteur de la vignette (entier)
$bg : s'il faut remplir avec des blancs, automatiquement rempli par défaut, la couleur de remplissage d'arrière-plan est dans les paramètres des accessoires système (true/false)

Exemple :

Appeler une vignette d'une longueur et d'une largeur de 100 pixels :

[field:picname function='thumb(@me,100,100)'/]

Conserver la proportion d'origine et ne pas remplir automatiquement (non recommandé) :

[field:picname function='thumb(@me,100,100,false)'/]

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