Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pemprosesan imej menggunakan PHP

Pemprosesan imej menggunakan PHP

WBOY
WBOYasal
2023-06-22 09:25:531356semak imbas

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas, dan keupayaan pemprosesan imejnya yang berkuasa menyediakan alat yang sangat mudah untuk pembangun tapak web. Menggunakan sambungan GD (Perpustakaan Pemprosesan Imej) melalui PHP, anda boleh mengendalikan imej, termasuk penskalaan, pemotongan, putaran, menambah tera air, menjana imej kecil, dsb. Dalam artikel ini, kita akan belajar cara menggunakan PHP untuk pemprosesan imej.

  1. Pasang sambungan GD

Sebelum kita mula menggunakan PHP untuk pemprosesan imej, kita perlu memastikan sambungan GD dipasang. Kita boleh menyemak sama ada sambungan GD telah dipasang dengan menggunakan arahan berikut:

php -m|grep gd

Jika tiada hasil ditemui, ini bermakna sambungan GD tidak dipasang. Di bawah sistem Linux, kami boleh menggunakan arahan berikut untuk memasang:

sudo apt-get install php-gd //使用apt安装
sudo yum install php-gd //使用yum安装

Di bawah sistem Windows, kami boleh menambah "extension=php_gd2.dll" pada konfigurasi sambungan dalam fail php.ini untuk pemasangan.

  1. Memproses imej

2.1 Buka fail imej

Dalam PHP, kita boleh menggunakan fungsi imagecreatefromjpeg() , fungsi imagecreatefrompng() dan imagecreatefromgif() berfungsi untuk membuka fail imej yang sepadan.

Sebagai contoh, kita boleh menggunakan kod berikut untuk membuka imej format JPEG bernama "test.jpg":

$img = imagecreatefromjpeg("test.jpg");

2.2 Saiz semula imej

Kita boleh menggunakan imagecopyresampled ( ) fungsi untuk melaraskan saiz imej Penggunaan khusus bagi 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 dst_w, int dst_h, int src_w, int src_h)

Antaranya, dst_image mewakili imej sasaran, src_image mewakili imej sumber, dst_x dan dst_y mewakili koordinat permulaan bagi kawasan yang disalin dalam imej sasaran, src_x dan src_y mewakili koordinat permulaan kawasan yang disalin dalam imej sumber, dst_w dan dst_h mewakili lebar dan ketinggian kawasan yang disalin dalam imej sasaran, src_w dan src_h mewakili lebar dan ketinggian kawasan yang disalin dalam imej sumber.

Sebagai contoh, kita boleh mengubah saiz imej kepada saiz 200x200:

$img = imagecreatefromjpeg("test.jpg");
$dst_img = imagecreatetruecolor(200, 200);
imagecopyresampled($dst_img, $img, 0, 0, 0, 0, 200, 200, imagesx($img), imagesy($img));

Antaranya, fungsi imagecreatetruecolor() digunakan untuk mencipta imej warna sebenar yang baharu. Fungsi imagesx() dan fungsi imagesy() digunakan untuk mendapatkan lebar dan ketinggian imej sumber masing-masing.

2.3 Putar imej

Kita boleh menggunakan fungsi imagerotate() untuk memutarkan imej Penggunaan khusus fungsi ini adalah seperti berikut:

bool imagerotate(resource image, float angle, int bgd_color[, int ignore_transparent])

Di mana, imej mewakili. imej diputar, sudut Menunjukkan sudut putaran, bgd_color menunjukkan warna latar belakang imej, dan ignore_transparent menunjukkan sama ada untuk mengabaikan warna lutsinar.

Sebagai contoh, kita boleh memutarkan imej 45 darjah:

$img = imagecreatefromjpeg("test.jpg");
$dst_img = imagerotate($img, 45, 0);

2.4 Tambah tera air

Kita boleh menggunakan fungsi imagecopy() untuk menambah tera air Penggunaan khusus fungsi ini Seperti berikut:

bool imagecopy(resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)

Antaranya, dst_image mewakili imej sasaran, src_image mewakili imej sumber, dst_x dan dst_y mewakili koordinat permulaan kawasan yang disalin dalam imej sasaran, src_x dan src_y mewakili koordinat permulaan daripada kawasan yang disalin dalam imej sumber , src_w dan src_h mewakili lebar dan ketinggian kawasan yang disalin dalam imej sumber.

Sebagai contoh, kita boleh menambah tera air pada imej:

$img = imagecreatefromjpeg("test.jpg");
$watermark = imagecreatefrompng("watermark.png");
imagecopy($img, $watermark, imagesx($img)-imagesx($watermark)-10, imagesy($img)-imagesy($watermark)-10, 0, 0, imagesx($watermark), imagesy($watermark));

Di mana, tera air.png ialah imej tera air dalam format PNG dengan latar belakang lutsinar, yang akan ditambahkan pada ujian. Sudut kanan bawah imej jpg dan 10 piksel dari sempadan.

2.5 Hasilkan lakaran kecil

Kita boleh menggunakan fungsi imagecopyresampled() untuk menghasilkan lakaran kecil Penggunaan khusus 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 dst_w, int dst_h, int src_w, int src_h)

Antaranya, dst_image mewakili. imej sasaran, src_image Mewakili imej sumber, dst_x dan dst_y mewakili koordinat permulaan kawasan yang disalin dalam imej sasaran, src_x dan src_y mewakili koordinat permulaan kawasan yang disalin dalam imej sumber, dst_w dan dst_h mewakili lebar dan ketinggian kawasan yang disalin dalam imej sasaran, src_w dan src_h mewakili lebar dan ketinggian kawasan yang disalin dalam imej sumber.

Sebagai contoh, kita boleh menjana lakaran kecil dengan lebar 100 piksel:

$img = imagecreatefromjpeg("test.jpg");
$dst_img = imagecreatetruecolor(100, imagesy($img)*(100/imagesx($img)));
imagecopyresampled($dst_img, $img, 0, 0, 0, 0, 100, imagesy($img)*(100/imagesx($img)), imagesx($img), imagesy($img));
  1. Simpan fail imej

Akhir sekali, kita perlu menggunakan fungsi imagejpeg(), fungsi imagepng() dan fungsi imagegif() untuk menyimpan imej yang kami proses.

Sebagai contoh, kami boleh menyimpan imej yang baru kami proses ke fail menggunakan kod berikut:

imagejpeg($dst_img, "test_thumb.jpg");

Ringkasan

Dengan menggunakan keupayaan pemprosesan imej PHP, kami boleh Melaksanakan dengan mudah pelbagai operasi pada imej, termasuk mengubah saiz, memutar, menambah tera air, menjana imej kecil, dsb. Ini adalah ciri yang sangat berguna untuk pembangun. Saya berharap melalui pengenalan artikel ini, pembaca dapat menguasai penggunaan asas pemprosesan imej PHP dan memberikan lebih kemudahan untuk kerja pembangunan laman web mereka.

Atas ialah kandungan terperinci Pemprosesan imej menggunakan 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