Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengenalan kepada penggunaan fungsi pemprosesan kesan imej PHP

Pengenalan kepada penggunaan fungsi pemprosesan kesan imej PHP

PHPz
PHPzasal
2023-06-15 20:48:331085semak imbas

Sebagai bahasa skrip, PHP mempunyai perpustakaan yang kaya dengan fungsi pemprosesan imej, yang boleh melakukan pelbagai operasi pemprosesan pada imej dengan mudah, seperti penskalaan, pemotongan, penanda air, penapis, dll., dan menyokong imej dalam pelbagai format.

Dalam artikel ini, kami akan memperkenalkan fungsi pemprosesan imej yang biasa digunakan dalam PHP dan menyediakan senario aplikasi praktikal serta kod sampel.

1. Mengezum dan Memotong

Mengezum dan memotong adalah operasi biasa untuk memproses imej Di bawah kami akan memperkenalkan fungsi pemprosesan imej PHP yang sepadan secara terperinci.

  1. Skala

imagecopyresized() ialah fungsi penskalaan yang paling biasa digunakan dalam PHP, yang boleh menukar saiz imej sambil mengekalkan nisbah bidang imej asal.

Sintaks fungsi ini adalah seperti berikut:

bool imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $ dst_w , int $ dst_h , int $src_w , int $src_h )

Penjelasan parameter:

  • $dst_image ialah sumber imej sasaran; sumber imej sumber;
  • $dst_x dan $dst_y ialah kedudukan koordinat penjuru kiri sebelah atas sumber imej sasaran; daripada sumber imej sumber;
  • $dst_w dan $dst_h ialah lebar dan tinggi imej sasaran
  • $src_w dan $src_h ialah lebar dan tinggi imej sumber.
  • Berikut ialah contoh kod untuk menskalakan imej:
  • $src_image = imagecreatefrompng('origin.png');

    $dst_image = imagecreatetruecolor (300, 300);

    $src_w = imagesx($src_image);//Dapatkan lebar imej sumber

    $src_h = imagesy($src_image);//Dapatkan ketinggian imej sumber
    $ dst_w = 300;
    $dst_h = 300;
    imagecopyresized($dst_image, $src_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
    imagepng($ dst_image, 'resize .png');
    imagedestroy($src_image);
    imagedestroy($dst_image);
    ?>


    Pangkas

    imagecopyresampled( ) ialah fungsi yang digunakan untuk memangkas dalam PHP Ia mempunyai fungsi yang serupa dengan imagecopyresized(), tetapi boleh mencapai kesan penskalaan yang lebih berkualiti.
  1. Sintaks fungsi ini adalah seperti berikut:

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_y , int dst_w , int $ dst_h , int $src_w , int $src_h )

Penjelasan parameter adalah sama seperti imagecopyresized().

Berikut ialah contoh kod untuk memangkas imej:

$src_image = imagecreatefrompng('origin.png');

$dst_image = imagecreatetruecolor( 200 , 200);

$src_w = imagesx($src_image);//Dapatkan lebar imej sumber

$src_h = imagesy($src_image);//Dapatkan ketinggian imej sumber
$dst_w = 200;
$dst_h = 200;
$x = 0;
$y = 0;
$src_x = ($src_w-$dst_w)/2;
$src_y = ($src_h- $ dst_h)/2;
imagecopyresampled($dst_image, $src_image, $x, $y, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
imagepng($dst_image, ' crop.png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>

2 picture Ia adalah senario yang sering terlibat dalam aplikasi praktikal, dan PHP juga menyediakan sokongan fungsi yang sepadan.

Fungsi imagecopy() boleh digunakan untuk menindih satu imej pada imej lain untuk mencapai kesan tera air.

Sintaks fungsi ini adalah seperti berikut:

salinan imej bool ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $ src_w , int $ src_h )

Penjelasan parameter:

$dst_image ialah sumber imej sasaran; 🎜>$dst_x dan $ dst_y ialah kedudukan koordinat sudut kiri atas sumber imej sasaran; >

$src_w dan $src_h ialah imej sumber Lebar dan ketinggian sumber.

Berikut ialah contoh kod dengan tera air:
  • $src_image = imagecreatefrompng('origin.png');
  • $watermark_image = imagecreatefrompng('watermark.png');
  • $src_w = imagesx($src_image);// Dapatkan lebar imej sumber
  • $src_h = imagesy($src_image);// Dapatkan ketinggian imej sumber
  • $watermark_w = imagesx($watermark_image);//Dapatkan lebar tera air
  • $watermark_h = imagesy($watermark_image);//Dapatkan ketinggian tera air
  • $max_width = $src_w - $watermark_w - 10; kedudukan tera air dibenarkan Lebar
  • $max_height = $src_h - $watermark_h - 10; // Ketinggian maksimum dibenarkan untuk kedudukan tera air
  • $x = rand(10, $max_width); // Koordinat Abscissa bagi kedudukan tera air yang dijana secara rawak
$ y = rand(10, $max_height); // Menjana koordinat menegak kedudukan tera air

salinan imej($src_image, $watermark_image, $x, $y, 0, 0, $watermark_h, $watermark_h );

imagepng($src_image, 'watermarked.png');

imagedestroy($src_image);
imagedestroy($watermark_image);
?>

3

PHP juga menyediakan pelbagai kesan penapis untuk menjadikan gambar lebih menarik dan artistik.

Fungsi imagefilter() menyokong pelbagai kesan penapis, seperti penyongsangan, skala kelabu, kabur, dll. Untuk butiran, sila rujuk dokumentasi PHP rasmi.

Berikut ialah contoh kod yang menggunakan kesan penapis:

$src_image = imagecreatefrompng('origin.png');
imagefilter($src_image, IMG_FILTER_PIXELATE, 15, true);// Mozek
imagefilter($TRASTFILTER_image, IMG_CON -50);//Laraskan kontras
imagepng($src_image, 'filter.png');
imagedestroy($src_image);
?>

Kod di atas melaksanakan Mozek dan pelarasan kontras gambar.

Ringkasnya, PHP menyediakan sokongan yang kuat untuk pemprosesan imej, dan fungsinya ringkas dan mudah digunakan, yang boleh memenuhi keperluan kebanyakan senario aplikasi. Memahami fungsi pemprosesan imej yang biasa digunakan ini akan meningkatkan kecekapan dalam pembangunan aplikasi web.

Atas ialah kandungan terperinci Pengenalan kepada penggunaan fungsi pemprosesan kesan imej PHP. 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