Maison développement back-end tutoriel php PHP创建缩略图造成图片质量低上的完美解决办法

PHP创建缩略图造成图片质量低上的完美解决办法

Jun 13, 2016 pm 01:05 PM
height img name width

PHP创建缩略图造成图片质量低下的完美解决方法

近期弄个论坛,在首页要有个排名,显示评论最多的前十位用户的列表,列表有个略图是用户最新上传的作品,如果使用原来的图,图片过大,首页加载过慢,因此要使用略图

以上来使用imagecopyresized这个函数,显示质量很差如图

后来改用imagecopyresampled效果明显改变效果如图

付上完整代码

/**
* @name	thum 	缩略图函数
* @param	sting	$img_name	图片路径
* @param	int		$max_width	略图最大宽度
* @param	int		$max_height	略图最大高度
* @param	sting	$suffix 略图后缀(如"img_x.jpg"代表小图,"img_m.jpg"代表中图,"img_l.jpg"代表大图)
* @return	void
*/
function thum($img_name,$max_width,$max_height,$suffix){
		$img_infos=getimagesize($img_name);
		$img_height=$img_infos[0];//图片高
		$img_width=$img_infos[1];//图片宽
		$img_extension='';//图片后缀名
		switch($img_infos[2]){
			case 1:
				$img_extension='gif';
				break;
			case 2:
				$img_extension='jpeg';
				break;
			case 3:
				$img_extension='png';
				break;
			default:
				$img_extension='jpeg';
				break;
			}
		$new_img_size=get_thum_size($img_width,$img_height,$max_width,$max_height);//新的图片尺寸
		
		
		//print_r($new_img_size);
		//die('test');
		$img_func='';//函数名称
		$img_handle='';//图片句柄
		$thum_handle='';//略图图片句柄
		switch($img_extension){
			case 'jpg':
				$img_handle=imagecreatefromjpeg($img_name);
				$img_func='imagejpeg';
				break;
			case 'jpeg':
				$img_handle=imagecreatefromjpeg($img_name);
				$img_func='imagejpeg';
				break;
			case 'png':
				$img_handle=imagecreatefrompng($img_name);
				$img_func='imagepng';
				break;
			case 'gif':
			 	$img_handle=imagecreatefromgif($img_name);
				$img_func='imagegif';
				break;
			default:
				$img_handle=imagecreatefromjpeg($img_name);
				$img_func='imagejpeg';
				break;
			}
		/****/	
		$quality=100;//图片质量
		if($img_func==='imagepng' && (str_replace('.', '', PHP_VERSION)>= 512)){//针对php版本大于5.12参数变化后的处理情况
			$quality=9;
			} 
		/****/
		$thum_handle=imagecreatetruecolor($new_img_size['height'],$new_img_size['width']);
		if(function_exists('imagecopyresampled')){
			imagecopyresampled($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width);
			}else{
				imagecopyresized($thum_handle,$img_handle, 0, 0, 0, 0,$new_img_size['height'],$new_img_size['width'],$img_height,$img_width);
			}
        call_user_func_array($img_func,array($thum_handle,get_thum_name($img_name,$suffix),$quality));
		imagedestroy($thum_handle);//清除句柄
        imagedestroy($img_handle);//清除句柄
	}

/**
* @name get_thum_size 获得缩略图的尺寸
* @param	$width	图片宽
* @param    $height 图片高
* @param	$max_width 最大宽度
* @param	$maxHeight 最大高度
* @param	array $size;
*/
function get_thum_size($width,$height,$max_width,$max_height){
	$now_width=$width;//现在的宽度
	$now_height=$height;//现在的高度
	$size=array();
	if($now_width>$max_width){//如果现在宽度大于最大宽度
		$now_height*=number_format($max_width/$width,4);
		$now_width=	$max_width;
		}
	if($now_height>$max_height){//如果现在高度大于最大高度
		$now_width*=number_format($max_height/$now_height,4);
		$now_height=$max_height;
		}
	$size['width']=floor($now_width);
	$size['height']=floor($now_height);
	return $size;
	}

/**
*@ name 	get_thum_name 获得略图的名称(在大图基础加_x)
*/
function get_thum_name($img_name,$suffix){
		$str=explode('#',$img_name);
		$str1=explode('.',$str[1]);
		return $str[0].'_'.$suffix.'.'.$str1[1];
	}
Copier après la connexion



Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ouvrir le fichier img Comment ouvrir le fichier img Sep 18, 2023 am 09:40 AM

Les méthodes pour ouvrir les fichiers img incluent l'utilisation d'un logiciel de lecteur optique virtuel, l'utilisation d'un logiciel de compression et l'utilisation d'outils spéciaux. Introduction détaillée : 1. Utilisez le logiciel de lecteur optique virtuel pour ouvrir, télécharger et installer un logiciel de lecteur optique virtuel, cliquez avec le bouton droit sur le fichier img, sélectionnez "Ouvrir avec" ou "Programme associé", sélectionnez le logiciel de lecteur optique virtuel installé dans la fenêtre contextuelle. -up boîte de dialogue, virtuel Le logiciel du lecteur optique chargera automatiquement le fichier img et l'utilisera comme image disque dans le lecteur optique virtuel Double-cliquez sur l'icône du disque dans le lecteur optique virtuel pour ouvrir le fichier img et accéder à son contenu. etc.

Comment ouvrir le fichier img Comment ouvrir le fichier img Jul 06, 2023 pm 04:17 PM

Comment ouvrir le fichier img : 1. Confirmez le chemin du fichier img ; 2. Utilisez l'ouvre-fichier img ; 3. Sélectionnez la méthode d'ouverture ; 4. Affichez l'image ; Le fichier img est un format de fichier image couramment utilisé, généralement utilisé pour stocker des données d'image.

Quel est le format de l'image ? Quel est le format de l'image ? Mar 17, 2023 am 10:33 AM

img est un format de compression de fichiers, principalement utilisé pour créer des fichiers image de disquette. Il peut être utilisé pour compresser le contenu d'une disquette entière ou d'un CD entier. Des fichiers avec l'extension ".IMG" sont créés en utilisant ce format de fichier. Le fichier img comprend 3 nœuds de base, à savoir "Ehfa_HeaderTag", "Ehfa_File" et "Ehfa_Entry".

Que signifie la largeur du HTML ? Que signifie la largeur du HTML ? Jun 03, 2021 pm 02:15 PM

En HTML5, width signifie width. L'attribut width définit la largeur de la zone de contenu de l'élément. Vous pouvez ajouter des marges intérieures, des bordures et des marges extérieures en dehors de la zone de contenu. élément.

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

U disk pe ne peut pas lire img U disk pe ne peut pas lire img Mar 19, 2024 pm 12:07 PM

Le disque U est l'un des périphériques de stockage fréquemment utilisés. Il y aura également quelques problèmes mineurs lors de l'utilisation. Par exemple : le disque U ne peut pas être lu. Comment le résoudre ? Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre le problème facilement. Une fois la clé USB insérée dans l'ordinateur, cliquez sur le menu Démarrer, sélectionnez Panneau de configuration et rangez-la ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre facilement le problème. Recherchez et double-cliquez sur le Gestionnaire de périphériques dans le Panneau de configuration. Garde le! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre facilement le problème : Recherchez le contrôleur Universal Serial Bus sur l'interface principale du Gestionnaire de périphériques et rangez-le ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à trouver facilement le périphérique de stockage de masse USB, le sélectionner, faire un clic droit, trouver Désinstaller et ranger le ! Vous n'arrivez pas à lire la clé USB ? 4 étapes pour vous apprendre à résoudre le problème facilement. Bienvenue à laisser un message pour discussion !

Explication détaillée des propriétés des dimensions CSS : hauteur et largeur Explication détaillée des propriétés des dimensions CSS : hauteur et largeur Oct 21, 2023 pm 12:42 PM

Explication détaillée des propriétés des dimensions CSS : hauteur et largeur Dans le développement front-end, CSS est un puissant langage de définition de style. Parmi eux, la hauteur et la largeur sont les deux attributs de dimension les plus élémentaires, utilisés pour définir la hauteur et la largeur de l'élément. Cet article analysera ces deux propriétés en détail et fournira des exemples de code spécifiques. 1. Attribut Height L'attribut height est utilisé pour définir la hauteur d'un élément. Vous pouvez utiliser le pixel, le pourcentage ou

Comment changer l'attribut src de img dans jquery Comment changer l'attribut src de img dans jquery Mar 03, 2022 pm 03:41 PM

Comment changer l'attribut img src dans jquery : 1. Utilisez l'attribut attr(), la syntaxe "$("img").attr("src","image file address""); 2. Utilisez la méthode prop(), la syntaxe " $("img").prop("src","L'adresse du fichier image")".

See all articles