Rumah > pembangunan bahagian belakang > masalah PHP > Apakah langkah-langkah untuk memangkas imej dalam php

Apakah langkah-langkah untuk memangkas imej dalam php

藏色散人
Lepaskan: 2023-03-14 08:22:01
asal
3785 orang telah melayarinya

Langkah-langkah untuk memangkas imej dalam PHP: 1. Buat fail contoh PHP 2. Gunakan kaedah "function imageCropper(){...}" untuk mencapai pemangkasan invarian imej 3. Gunakan "function imageZoom(; ){ ...}" kaedah boleh digunakan untuk memangkas imej secara berkadar.

Apakah langkah-langkah untuk memangkas imej dalam php

Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.4, komputer DELL G3

Apakah langkah-langkah untuk memotong gambar dengan PHP?

Cara melaksanakan pemangkasan invarian imej dan pemotongan berkadar imej dengan PHP

Artikel ini menerangkan contoh PHP melaksanakan pemotongan invarian imej dan pemotongan berkadar imej. Kongsi dengan semua orang untuk rujukan anda, butirannya adalah seperti berikut:

Gambar pemangkasan tidak berubah

<?php
/**
 * imageCropper
 * @param string $source_path
 * @param string $target_width
 * @param string $target_height
 */
function imageCropper($source_path, $target_width, $target_height){
  $source_info  = getimagesize($source_path);
  $source_width = $source_info[0];
  $source_height = $source_info[1];
  $source_mime  = $source_info[&#39;mime&#39;];
  $source_ratio = $source_height / $source_width;
  $target_ratio = $target_height / $target_width;
  if ($source_ratio > $target_ratio){
    // image-to-height
    $cropped_width = $source_width;
    $cropped_height = $source_width * $target_ratio;
    $source_x = 0;
    $source_y = ($source_height - $cropped_height) / 2;
  }elseif ($source_ratio < $target_ratio){
    //image-to-widht
    $cropped_width = $source_height / $target_ratio;
    $cropped_height = $source_height;
    $source_x = ($source_width - $cropped_width) / 2;
    $source_y = 0;
  }else{
    //image-size-ok
    $cropped_width = $source_width;
    $cropped_height = $source_height;
    $source_x = 0;
    $source_y = 0;
  }
  switch ($source_mime){
    case &#39;image/gif&#39;:
      $source_image = imagecreatefromgif($source_path);
      break;
    case &#39;image/jpeg&#39;:
      $source_image = imagecreatefromjpeg($source_path);
      break;
    case &#39;image/png&#39;:
      $source_image = imagecreatefrompng($source_path);
      break;
    default:
      return ;
      break;
  }
  $target_image = imagecreatetruecolor($target_width, $target_height);
  $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
  // copy
  imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
  // zoom
  imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);
  header(&#39;Content-Type: image/jpeg&#39;);
  imagejpeg($target_image);
  imagedestroy($source_image);
  imagedestroy($target_image);
  imagedestroy($cropped_image);
}
$filename = "8fcb7a0831b79c61.jpg";
imageCropper($filename,200,200);
?>
Salin selepas log masuk

Gambar dipangkas secara proporsional

<?php
/**
 * imageZoom
 * @param string $file
 * @param double $zoom
 */
function imageZoom($filename,$zoom=0.6){
  //baseinfo
  $sourceImageInfo = getimagesize($filename);
  $sourceWidth = $sourceImageInfo[0];
  $sourceHeight = $sourceImageInfo[1];
  $sourceMine = $sourceImageInfo[&#39;mime&#39;];
  $sourceRatio = $sourceWidth/$sourceHeight;
  $sourceX = 0;
  $sourceY = 0;
  //zoom
  $targetRatio = $zoom;
  //target-widht-height
  $targetWidth = $sourceWidth*$targetRatio;
  $targetHeight = $sourceHeight*$targetRatio;
  //init-params
  $sourceImage = null;
  switch($sourceMine){
    case &#39;image/gif&#39;:
      $sourceImage = imagecreatefromgif($filename);
      break;
    case &#39;image/jpeg&#39;:
      $sourceImage = imagecreatefromjpeg($filename);
      break;
    case &#39;image/png&#39;:
      $sourceImage = imagecreatefrompng($filename);
      break;
    default:
      return ;
      break;
  }
  //temp-target-image
  $tempSourceImage = imagecreatetruecolor($sourceWidth, $sourceHeight);
  $targetImage = imagecreatetruecolor($targetWidth,$targetHeight);
  //copy
  imagecopy($tempSourceImage, $sourceImage, 0, 0, $sourceX, $sourceY, $sourceWidth, $sourceHeight);
  //zoom
  imagecopyresampled($targetImage, $tempSourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $sourceWidth, $sourceHeight);
  //header
  header(&#39;Content-Type: image/jpeg&#39;);
  //image-loading
  imagejpeg($targetImage);
  //destroy
  imagedestroy($tempSourceImage);
  imagedestroy($sourceImage);
  imagedestroy($targetImage);
}
$filename = "8fcb7a0831b79c61.jpg";
imageZoom($filename);
?>
Salin selepas log masuk

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah langkah-langkah untuk memangkas imej dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan