Kemahiran pemprosesan imej PHP didedahkan

王林
Lepaskan: 2023-09-13 09:38:01
asal
1192 orang telah melayarinya

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);
Salin selepas log masuk
  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);
Salin selepas log masuk
  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);
Salin selepas log masuk
  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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!