Maison développement back-end tutoriel php PHP recadre l'image sans affecter sa forme

PHP recadre l'image sans affecter sa forme

May 21, 2018 am 11:19 AM
php 裁剪

Cette fois, je vais vous montrer comment recadrer l'image en PHP sans affecter la forme de l'image. Quelles sont les précautions pour recadrer en PHP sans affecter la forme de l'image. cas pratique. Jetons un coup d'oeil.

Exigences fonctionnelles :
Recadrez automatiquement l'image après l'avoir téléchargée, puis affichez l'image recadrée à la réception.

<?
 *exif_imagetype -- 判断一个图像的类型
 *说明:函数功能是把一个图像裁剪为任意大小的图像,图像不变形
 * 参数说明:输入 需要处理图片的 文件名,生成新图片的保存文件名,生成新图片的宽,生成新图片的高
 */
  // 获得任意大小图像,不足地方拉伸,不产生变形,不留下空白
 function my_image_resize($src_file, $dst_file , $new_width , $new_height) {
$new_width= intval($new_width);
$new_height=intval($new_width);
 if($new_width <1 || $new_height <1) {
 echo "params width or height error !";
 exit();
 }
 if(!file_exists($src_file)) {
 echo $src_file . " is not exists !";
 exit();
 }
 // 图像类型
 $type=exif_imagetype($src_file);
 $support_type=array(IMAGETYPE_JPEG , IMAGETYPE_PNG , IMAGETYPE_GIF);
 if(!in_array($type, $support_type,true)) {
 echo "this type of image does not support! only support jpg , gif or png";
 exit();
 }
 //Load image
 switch($type) {
 case IMAGETYPE_JPEG :
 $src_img=imagecreatefromjpeg($src_file);
 break;
 case IMAGETYPE_PNG :
 $src_img=imagecreatefrompng($src_file);
 break;
 case IMAGETYPE_GIF :
 $src_img=imagecreatefromgif($src_file);
 break;
 default:
 echo "Load image error!";
 exit();
 }
 $w=imagesx($src_img);
 $h=imagesy($src_img);
 $ratio_w=1.0 * $new_width / $w;
 $ratio_h=1.0 * $new_height / $h;
 $ratio=1.0;
 // 生成的图像的高宽比原来的都小,或都大 ,原则是 取大比例放大,取大比例缩小(缩小的比例就比较小了)
 if( ($ratio_w < 1 && $ratio_h < 1) || ($ratio_w > 1 && $ratio_h > 1)) {
 if($ratio_w < $ratio_h) {
 $ratio = $ratio_h ; // 情况一,宽度的比例比高度方向的小,按照高度的比例标准来裁剪或放大
 }else {
 $ratio = $ratio_w ;
 }
 // 定义一个中间的临时图像,该图像的宽高比 正好满足目标要求
 $inter_w=(int)($new_width / $ratio);
 $inter_h=(int) ($new_height / $ratio);
 $inter_img=imagecreatetruecolor($inter_w , $inter_h);
 //var_dump($inter_img);
 imagecopy($inter_img, $src_img, 0,0,0,0,$inter_w,$inter_h);
 // 生成一个以最大边长度为大小的是目标图像$ratio比例的临时图像
 // 定义一个新的图像
 $new_img=imagecreatetruecolor($new_width,$new_height);
 //var_dump($new_img);exit();
 imagecopyresampled($new_img,$inter_img,0,0,0,0,$new_width,$new_height,$inter_w,$inter_h);
 switch($type) {
 case IMAGETYPE_JPEG :
 imagejpeg($new_img, $dst_file,100); // 存储图像
 break;
 case IMAGETYPE_PNG :
 imagepng($new_img,$dst_file,100);
 break;
 case IMAGETYPE_GIF :
 imagegif($new_img,$dst_file,100);
 break;
 default:
 break;
 }
 } // end if 1
 // 2 目标图像 的一个边大于原图,一个边小于原图 ,先放大平普图像,然后裁剪
 // =if( ($ratio_w < 1 && $ratio_h > 1) || ($ratio_w >1 && $ratio_h <1) )
 else{
 $ratio=$ratio_h>$ratio_w? $ratio_h : $ratio_w; //取比例大的那个值
 // 定义一个中间的大图像,该图像的高或宽和目标图像相等,然后对原图放大
 $inter_w=(int)($w * $ratio);
 $inter_h=(int) ($h * $ratio);
 $inter_img=imagecreatetruecolor($inter_w , $inter_h);
 //将原图缩放比例后裁剪
 imagecopyresampled($inter_img,$src_img,0,0,0,0,$inter_w,$inter_h,$w,$h);
 // 定义一个新的图像
 $new_img=imagecreatetruecolor($new_width,$new_height);
 imagecopy($new_img, $inter_img, 0,0,0,0,$new_width,$new_height);
 switch($type) {
 case IMAGETYPE_JPEG :
 imagejpeg($new_img, $dst_file,100); // 存储图像
 break;
 case IMAGETYPE_PNG :
 imagepng($new_img,$dst_file,100);
 break;
 case IMAGETYPE_GIF :
 imagegif($new_img,$dst_file,100);
 break;
 default:
 break;
 }
 }// if3
 }// end function
my_image_resize(&#39;test.gif&#39;,&#39;11111.gif&#39;,&#39;100px&#39;,&#39;100px&#39;);
?>
Copier après la connexion

Résumé de l'éditeur :
La fonction de recadrage d'image PHP implémentée ci-dessus applique de manière flexible les fonctions pertinentes de la bibliothèque PHP gd, y compris l'utilisation de imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagecreatetruecolor et d'autres fonctions.
Par conséquent, maîtriser de manière flexible l'utilisation de chaque fonction de la bibliothèque php gd est crucial pour la réalisation de fonctions telles que le recadrage d'images, les filigranes, les vignettes et ainsi de suite.

Lecture approfondie : Exemple de génération de vignettes à l'aide de la bibliothèque php GD Connaissance de base de la bibliothèque php gd Explication détaillée de l'utilisation de la fonction GD dans la bibliothèque PHP GD La bibliothèque php GD génère des vignettes de haute qualité (exemple) Collection de fonctions de la bibliothèque PHP GD (collection) PHP utilise la bibliothèque gd pour implémenter un exemple de code de capture d'écran Explication détaillée des étapes pour ajouter le support de la bibliothèque GD à PHP Partager les étapes pour installer la bibliothèque GD en php5 L'ensemble du processus d'installation de la bibliothèque php gd avec yum sous Linux Comment ouvrir la bibliothèque PHP GD sous Windows php ouvre la bibliothèque GD (environnement Windows) Exemple de code pour générer dynamiquement un graphique linéaire à l'aide de la bibliothèque PHP GD Exemple de code pour dessiner un histogramme sur 24 heures à l'aide de la bibliothèque php GD Exemple de phpCode de vérification (la bibliothèque GD génère un code de vérification) Code de la bibliothèque php GD pour télécharger des images et créer des vignettes Exemple de code de vérification généré par la bibliothèque php GD

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Explication détaillée de la suppression des caractères de nouvelle ligne lorsque PHP lit les fichiers ligne par ligne

implémentation de la bibliothèque php gd service Fin du recadrage de l'image et de la fonction d'aperçu des vignettes

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 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)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

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)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

See all articles