Maison >développement back-end >tutoriel php >Comment utiliser GD pour manipuler des images en php

Comment utiliser GD pour manipuler des images en php

墨辰丷
墨辰丷original
2018-06-11 15:38:171656parcourir

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;);

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!

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