ホームページ  >  記事  >  バックエンド開発  >  PHP画像処理スキルが明らかに

PHP画像処理スキルが明らかに

王林
王林オリジナル
2023-09-13 09:30:111162ブラウズ

PHP画像処理スキルが明らかに

明らかになった PHP 画像処理スキル

現代のインターネット アプリケーションでは、画像処理は非常に一般的な要件の 1 つです。圧縮、トリミング、画像への透かしの追加、サムネイルの生成など、画像処理スキルを使用する必要があります。 PHP は優れたサーバーサイド プログラミング言語として、豊富な画像処理機能と拡張ライブラリを提供しており、これらのニーズの実現を強力にサポートします。この記事では、いくつかの PHP 画像処理テクニックを明らかにし、具体的なコード例を示します。

  1. 画像圧縮

画像圧縮は、Web サイトの読み込み速度を最適化し、帯域幅の消費を削減するための重要な手段です。画像圧縮には PHP の GD ライブラリを使用できます。以下は、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. 画像のトリミング

実際のアプリケーションでは、多くの場合、必要に応じて画像をトリミングする必要があります。さまざまなサイズ要件。以下は、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. ウォーターマークの追加

ウォーターマークは、画像の著作権を保護し、画像情報を表示する方法です。 PHP を使用すると、画像に透かしを簡単に追加できます。以下は、GD ライブラリを使用して画像にウォーターマークを追加するサンプル コードです。

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. Generate sumnails

画像を表示するとき、さまざまな表示ニーズに適応するために、 、多くの場合、サムネイルを生成する必要があります。以下は、GD ライブラリを使用してサムネイルを生成するサンプル コードです。

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

上記は、いくつかの PHP 画像処理手法と対応するコード例です。 GD ライブラリと PHP の画像処理機能を使用すると、画像の圧縮、切り抜き、透かしの追加、サムネイルの生成が簡単に行えます。この記事が開発中の画像を扱う際のお役に立てれば幸いです。

以上がPHP画像処理スキルが明らかにの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。