Home  >  Article  >  Backend Development  >  How to use GD to manipulate images in php

How to use GD to manipulate images in php

墨辰丷
墨辰丷Original
2018-06-11 15:38:171612browse

This article mainly introduces the method of using GD in PHP to create thumbnails that maintain the aspect ratio. It involves the skills of PHP using the GD library to operate images. Friends in need can refer to the following.

The examples in this article describe the use of PHP GD's way of creating thumbnails that maintain aspect ratio. The details are as follows:

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

Summary: The above is the entire content of this article, I hope it can be helpful to everyone Learning helps.

Related recommendations:

How to use php for database reading, judgment and session login

File and form operations and database operations involved in php file upload

php common tips for error handling

The above is the detailed content of How to use GD to manipulate images in php. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn