Comment utiliser GD pour manipuler des images en php

墨辰丷
Libérer: 2023-03-31 15:32:02
original
1578 Les gens l'ont consulté

Cet article présente principalement la méthode d'utilisation de GD en PHP pour créer des vignettes qui conservent les proportions. Il implique les compétences de PHP utilisant la bibliothèque GD pour exploiter les images. Les amis dans le besoin peuvent s'y référer

. Les exemples de cet article décrivent l'utilisation de la méthode PHP GD pour créer des vignettes qui conservent les proportions. Les détails sont les suivants :

/**
* Create a thumbnail image from $inputFileName no taller or wider than
* $maxSize. Returns the new image resource or false on error.
* Author: mthorn.net
*/
function thumbnail($inputFileName, $maxSize = 100)
{
 $info = getimagesize($inputFileName);
  $type = isset($info['type']) ? $info['type'] : $info[2];
  // Check support of file type
 if ( !(imagetypes() & $type) )
 {
   // Server does not support file type
   return false;
 }
  $width = isset($info['width']) ? $info['width'] : $info[0];
 $height = isset($info['height']) ? $info['height'] : $info[1];
  // Calculate aspect ratio
 $wRatio = $maxSize / $width;
 $hRatio = $maxSize / $height;
  // Using imagecreatefromstring will automatically detect the file type
 $sourceImage = imagecreatefromstring(file_get_contents($inputFileName));
  // Calculate a proportional width and height no larger than the max size.
 if ( ($width <= $maxSize) && ($height <= $maxSize) )
 {
   // Input is smaller than thumbnail, do nothing
   return $sourceImage;
 }
 elseif ( ($wRatio * $height) < $maxSize )
 {
   // Image is horizontal
   $tHeight = ceil($wRatio * $height);
   $tWidth = $maxSize;
 }
 else
 {
   // Image is vertical
   $tWidth = ceil($hRatio * $width);
   $tHeight = $maxSize;
 }
  $thumb = imagecreatetruecolor($tWidth, $tHeight);
  if ( $sourceImage === false )
 {
   // Could not load image
   return false;
 }
  // Copy resampled makes a smooth thumbnail
 imagecopyresampled($thumb,$sourceImage,0,0,0,0,$tWidth,$tHeight,$width,$height);
 imagedestroy($sourceImage);
  return $thumb;
}
 /**
* Save the image to a file. Type is determined from the extension.
* $quality is only used for jpegs.
* Author: mthorn.net
*/
function imageToFile($im, $fileName, $quality = 80)
{
 if ( !$im || file_exists($fileName) )
 {
   return false;
 }
  $ext = strtolower(substr($fileName, strrpos($fileName, &#39;.&#39;)));
  switch ( $ext )
 {
  case &#39;.gif&#39;:
  imagegif($im, $fileName);
  break;
  case &#39;.jpg&#39;:
  case &#39;.jpeg&#39;:
  imagejpeg($im, $fileName, $quality);
  break;
  case &#39;.png&#39;:
  imagepng($im, $fileName);
  break;
  case &#39;.bmp&#39;:
  imagewbmp($im, $fileName);
  break;
  default:
  return false;
 }
  return true;
}
$im = thumbnail(&#39;temp.jpg&#39;, 100);
imageToFile($im, &#39;temp-thumbnail.jpg&#39;);
Copier après la connexion

Résumé : Ce qui précède représente l'intégralité du contenu de cet article. , j’espère que cela pourra être utile. L’apprentissage de chacun aide.

Recommandations associées :

Comment utiliser PHP pour la lecture de bases de données, le jugement et la connexion à une session

Opérations sur les fichiers et les formulaires et opérations de base de données impliquées dans le téléchargement de fichiers php

Techniques courantes php pour la gestion des erreurs

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!