Maison > développement back-end > tutoriel php > Compétences en traitement d'images PHP révélées

Compétences en traitement d'images PHP révélées

王林
Libérer: 2023-09-13 09:38:01
original
1223 Les gens l'ont consulté

Compétences en traitement dimages PHP révélées

Les compétences en traitement d'images PHP révélées

Dans les applications Internet modernes, le traitement d'images est l'une des exigences les plus courantes. Qu'il s'agisse de compresser, de recadrer, d'ajouter des filigranes aux images, de générer des vignettes, etc., vous devez utiliser des compétences en traitement d'image. En tant qu'excellent langage de programmation côté serveur, PHP fournit de riches fonctions de traitement d'images et des bibliothèques d'extensions, ce qui nous permet de répondre efficacement à ces besoins. Cet article révélera quelques techniques de traitement d'images PHP et fournira des exemples de code spécifiques.

  1. Compression d'image

La compression d'image est un moyen important pour optimiser la vitesse de chargement des sites Web et réduire la consommation de bande passante. Vous pouvez utiliser la bibliothèque GD en PHP pour la compression d'images. Voici un exemple de code pour la compression d'images à l'aide de la bibliothèque GD :

function compressImage($source, $destination, $quality) {
  $info = getimagesize($source);
  
  if ($info['mime'] == 'image/jpeg') {
    $image = imagecreatefromjpeg($source);
  } elseif ($info['mime'] == 'image/gif') {
    $image = imagecreatefromgif($source);
  } elseif ($info['mime'] == 'image/png') {
    $image = imagecreatefrompng($source);
  }
  
  imagejpeg($image, $destination, $quality);
  
  return $destination;
}

$source = 'original.jpg';
$destination = 'compressed.jpg';
$quality = 50;

compressImage($source, $destination, $quality);
Copier après la connexion
  1. Recadrage d'images

Dans les applications pratiques, les images doivent souvent être recadrées en fonction des besoins pour s'adapter aux différentes exigences de taille. Voici un exemple de code pour le recadrage d'images à l'aide de la bibliothèque GD :

function cropImage($source, $destination, $x, $y, $width, $height) {
  $info = getimagesize($source);
  
  if ($info['mime'] == 'image/jpeg') {
    $image = imagecreatefromjpeg($source);
  } elseif ($info['mime'] == 'image/gif') {
    $image = imagecreatefromgif($source);
  } elseif ($info['mime'] == 'image/png') {
    $image = imagecreatefrompng($source);
  }
  
  $crop = imagecrop($image, ['x' => $x, 'y' => $y, 'width' => $width, 'height' => $height]);
  
  imagejpeg($crop, $destination);
  
  return $destination;
}

$source = 'original.jpg';
$destination = 'cropped.jpg';
$x = 0;
$y = 0;
$width = 200;
$height = 200;

cropImage($source, $destination, $x, $y, $width, $height);
Copier après la connexion
  1. Ajouter un filigrane

Le filigrane est un moyen de protéger les droits d'auteur de l'image et d'afficher les informations sur l'image. Vous pouvez facilement ajouter des filigranes aux images en utilisant PHP. Voici un exemple de code qui utilise la bibliothèque GD pour ajouter des filigranes aux images :

function addWatermark($source, $watermark, $position) {
  $info = getimagesize($source);
  
  if ($info['mime'] == 'image/jpeg') {
    $image = imagecreatefromjpeg($source);
  } elseif ($info['mime'] == 'image/gif') {
    $image = imagecreatefromgif($source);
  } elseif ($info['mime'] == 'image/png') {
    $image = imagecreatefrompng($source);
  }
  
  $watermarkImg = imagecreatefrompng($watermark);
  
  $watermarkWidth = imagesx($watermarkImg);
  $watermarkHeight = imagesy($watermarkImg);
  
  switch ($position) {
    case 'top-left':
      $x = 0;
      $y = 0;
      break;
    case 'top-right':
      $x = imagesx($image) - $watermarkWidth;
      $y = 0;
      break;
    case 'bottom-left':
      $x = 0;
      $y = imagesy($image) - $watermarkHeight;
      break;
    case 'bottom-right':
      $x = imagesx($image) - $watermarkWidth;
      $y = imagesy($image) - $watermarkHeight;
      break;
    default:
      $x = 0;
      $y = 0;
      break;
  }
  
  imagecopy($image, $watermarkImg, $x, $y, 0, 0, $watermarkWidth, $watermarkHeight);
  
  imagejpeg($image, $source);
  
  return $source;
}

$source = 'original.jpg';
$watermark = 'watermark.png';
$position = 'bottom-right';

addWatermark($source, $watermark, $position);
Copier après la connexion
  1. Générer des vignettes

Lors de l'affichage d'images, afin de s'adapter aux différents besoins d'affichage, il est souvent nécessaire de générer des vignettes. Voici un exemple de code qui utilise la bibliothèque GD pour générer des vignettes :

function generateThumbnail($source, $destination, $width, $height) {
  $info = getimagesize($source);
  
  if ($info['mime'] == 'image/jpeg') {
    $image = imagecreatefromjpeg($source);
  } elseif ($info['mime'] == 'image/gif') {
    $image = imagecreatefromgif($source);
  } elseif ($info['mime'] == 'image/png') {
    $image = imagecreatefrompng($source);
  }
  
  $thumb = imagecreatetruecolor($width, $height);
  
  imagecopyresampled($thumb, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesy($image));
  
  imagejpeg($thumb, $destination);
  
  return $destination;
}

$source = 'original.jpg';
$destination = 'thumbnail.jpg';
$width = 200;
$height = 200;

generateThumbnail($source, $destination, $width, $height);
Copier après la connexion

Voici quelques techniques de traitement d'image PHP et des exemples de code correspondants. En utilisant la bibliothèque GD et les fonctions de traitement d'image de PHP, nous pouvons facilement compresser, recadrer, ajouter des filigranes et générer des vignettes aux images. J'espère que cet article vous aidera lorsque vous travaillez avec des images en développement.

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