Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Kemahiran pemprosesan imej PHP didedahkan

Kemahiran pemprosesan imej PHP didedahkan

王林
王林asal
2023-09-13 09:30:111161semak imbas

Kemahiran pemprosesan imej PHP didedahkan

Kemahiran pemprosesan imej PHP didedahkan

Dalam aplikasi Internet moden, pemprosesan imej adalah salah satu keperluan yang sangat biasa. Sama ada ia memampatkan, memangkas, menambah tera air pada imej, menjana lakaran kecil, dsb., anda perlu menggunakan kemahiran pemprosesan imej. Sebagai bahasa pengaturcaraan bahagian pelayan yang sangat baik, PHP menyediakan fungsi pemprosesan imej yang kaya dan perpustakaan sambungan, yang memberikan sokongan yang baik untuk kami mencapai keperluan ini. Artikel ini akan mendedahkan beberapa teknik pemprosesan imej PHP dan memberikan contoh kod khusus.

  1. Mampatan Imej

Mampatan imej ialah cara penting untuk mengoptimumkan kelajuan memuatkan laman web dan mengurangkan penggunaan lebar jalur. Anda boleh menggunakan perpustakaan GD dalam PHP untuk pemampatan imej. Berikut ialah kod sampel untuk pemampatan imej menggunakan perpustakaan 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);
  1. Pemotongan imej

Dalam aplikasi praktikal, imej selalunya perlu dipangkas mengikut keperluan untuk menyesuaikan diri dengan keperluan saiz yang berbeza. Berikut ialah contoh kod untuk pemangkasan imej menggunakan perpustakaan 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);
  1. Tambah tera air

Tanda air ialah cara untuk melindungi hak cipta imej dan memaparkan maklumat imej. Anda boleh menambah tera air pada imej dengan mudah menggunakan PHP. Berikut ialah kod sampel yang menggunakan perpustakaan GD untuk menambah tera air pada imej:

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);
  1. Jana lakaran kenit

Apabila memaparkan imej, untuk menyesuaikan diri dengan keperluan paparan yang berbeza, selalunya perlu menjana lakaran kecil. Berikut ialah contoh kod yang menggunakan perpustakaan GD untuk menjana lakaran kecil:

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

Di atas ialah beberapa teknik pemprosesan imej PHP dan contoh kod yang sepadan. Dengan menggunakan pustaka GD dan fungsi pemprosesan imej PHP, kami boleh memampatkan, memangkas, menambah tera air dan menjana lakaran kecil pada imej dengan mudah. Saya harap artikel ini membantu anda apabila bekerja dengan imej dalam pembangunan.

Atas ialah kandungan terperinci Kemahiran pemprosesan imej PHP didedahkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn