PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular, yang digunakan secara meluas untuk pembangunan web. Dalam pembangunan web, pemprosesan imej adalah keperluan yang sangat biasa, dan ia juga sangat mudah untuk melaksanakan pemprosesan imej dalam PHP. Artikel ini akan memperkenalkan secara ringkas panduan pengenalan kepada pemprosesan imej PHP.
1. Keperluan persekitaran
Untuk menggunakan pemprosesan imej PHP, anda memerlukan sokongan pustaka PHP GD terlebih dahulu. Perpustakaan menyediakan fungsi untuk menulis imej ke fail atau mengeluarkannya ke penyemak imbas, memangkas dan menskala imej, menambah teks, dan menjadikan imej skala kelabu atau terbalik. Oleh itu, pastikan pelayan anda telah memasang pustaka PHP GD.
2. Fungsi biasa
fungsi imagecreatetruecolor() digunakan untuk mencipta sumber imej warna sebenar. Contohnya: fungsi
$image = imagecreatetruecolor(200, 200);
imagecolorallocate() digunakan untuk menetapkan warna kepada sumber imej. Contohnya:
$color = imagecolorallocate($image, 0, 0, 0);
Antaranya, $image ialah sumber imej yang dicipta sebelum ini dan 0, 0, 0 mewakili nilai RGB hitam.
fungsi imagefilledrectangle() digunakan untuk melukis segi empat tepat yang diisi dengan warna dalam sumber imej. Contohnya:
imagefilledrectangle($image, 0, 0, 200, 200, $color);
di mana $color ialah warna yang ditetapkan sebelum ini.
fungsi imagettftext() digunakan untuk menambah teks pada sumber imej. Contohnya:
$text_color = imagecolorallocate($image, 255, 255, 255); imagettftext($image, 20, 0, 50, 100, $text_color, "arial.ttf", "Hello, PHP!");
Antaranya, 20 mewakili saiz fon, 0 mewakili sudut kecondongan, 50 dan 100 ialah koordinat sudut kiri atas teks, arial.ttf ialah laluan fail fon, " Hello, PHP!" ialah teks yang akan dikeluarkan .
fungsi imagejpeg() digunakan untuk mengeluarkan imej ke dalam format JPEG. Contohnya:
header("Content-Type: image/jpeg"); imagejpeg($image);
Antaranya, fungsi header() digunakan untuk menetapkan pengepala Content-Type output, memberitahu pelayar bahawa output ialah imej dan $image ialah sumber imej yang dicipta sebelum ini .
fungsi imagedestroy() digunakan untuk memusnahkan sumber imej. Contohnya:
imagedestroy($image);
3. Pemprosesan imej asas
Membaca dan mengeluarkan imej adalah sangat mudah, hanya gunakan imagecreatefromjpeg( ) dan fungsi imagejpeg(). Contohnya:
$image = imagecreatefromjpeg("example.jpg"); header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image);
Antaranya, fungsi imagecreatefromjpeg() akan membaca example.jpg sebagai sumber imej, fungsi header() menetapkan output Content-Type header, fungsi imagejpeg() mengeluarkan imej, dan fungsi imagedestroy() memusnahkan sumber imej.
Untuk memangkas dan skala imej, anda perlu menggunakan fungsi imagecopyresampled(). Contohnya:
$image = imagecreatefromjpeg("example.jpg"); $width = imagesx($image); $height = imagesy($image); $new_image = imagecreatetruecolor(100, 100); imagecopyresampled($new_image, $image, 0, 0, 0, 0, 100, 100, $width, $height); header("Content-Type: image/jpeg"); imagejpeg($new_image); imagedestroy($image); imagedestroy($new_image);
Antaranya, parameter pertama fungsi imagecopyresampled() ialah sumber imej baharu, parameter kedua ialah sumber imej lama, dan empat parameter seterusnya ialah X dan Y di bahagian atas. sudut kiri sumber imej baharu Koordinat, X dan Y sudut kiri atas sumber imej yang dipangkas Dua parameter seterusnya ialah lebar dan tinggi sumber imej baharu sumber imej lama. Akhir sekali, musnahkan sumber imej.
Untuk menambah tera air pada imej, anda perlu menggunakan fungsi imagecopy(). Contohnya:
$image = imagecreatefromjpeg("example.jpg"); $watermark = imagecreatefrompng("watermark.png"); $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); imagecopy($image, $watermark, 0, 0, 0, 0, $watermark_width, $watermark_height); header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image); imagedestroy($watermark);
Antaranya, fungsi imagecreatefrompng() membaca tera air sebagai sumber imej, dan fungsi imagecopy() menambah tera air pada example.jpg dan memusnahkan sumber imej.
4. Pemprosesan imej lanjutan
Lakaran kecil imej ialah keperluan yang sangat biasa dalam pembangunan web, dan perpustakaan PHP GD juga menyediakan A fungsi yang sangat mudah untuk menjana imej kecil. Contohnya:
$image = imagecreatefromjpeg("example.jpg"); $width = imagesx($image); $height = imagesy($image); $new_width = 100; $new_height = ($new_width / $width) * $height; $new_image = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header("Content-Type: image/jpeg"); imagejpeg($new_image); imagedestroy($image); imagedestroy($new_image);
Antaranya, baca dahulu imej asal, kira lebar dan tinggi baharu, gunakan fungsi imagecreatetruecolor() untuk mencipta sumber imej baharu, dan gunakan fungsi imagecopyresampled() untuk mengecilkan yang lama. imej kepada lebar dan tinggi baharu, akhirnya mengeluarkan imej baharu dan memusnahkan sumber imej.
Penapis imej boleh menambah kesan yang sangat hebat pada imej anda. Dalam pustaka PHP GD, ini boleh dicapai dengan mudah menggunakan fungsi imagefilter(). Contohnya:
$image = imagecreatefromjpeg("example.jpg"); imagefilter($image, IMG_FILTER_GRAYSCALE); header("Content-Type: image/jpeg"); imagejpeg($image); imagedestroy($image);
Antaranya, IMG_FILTER_GRAYSCALE ialah penapis skala kelabu, yang boleh menukar imej kepada skala kelabu.
Dalam pembangunan web, adalah perkara biasa untuk menukar imej kepada pengekodan Base64 untuk paparan dalam HTML. Pustaka GD PHP menyediakan fungsi imagejpeg() dan imagepng() untuk terus mengeluarkan pengekodan Base64. Contohnya:
$image = imagecreatefromjpeg("example.jpg"); ob_start(); imagejpeg($image); $data = ob_get_contents(); ob_clean(); $base64 = "data:image/jpeg;base64," . base64_encode($data); echo "<img src="$base64">"; imagedestroy($image);
Antaranya, fungsi ob_start() menghidupkan cache output, fungsi imagejpeg() mengeluarkan imej ke cache, fungsi ob_get_contents() mendapatkan data dalam cache, ob_clean () fungsi mengosongkan cache, dan base64_encode() berfungsi Base64 mengekod data dalam cache, dan akhirnya menjana teg img dengan pengekodan Base64 sebagai nilai atribut srcnya. Musnahkan sumber imej.
Kesimpulan
Di atas adalah panduan pengenalan kepada pemprosesan imej PHP Melalui panduan ini, anda boleh memahami fungsi asas dan fungsi biasa yang disediakan oleh perpustakaan PHP GD, dan memahami cara melaksanakan imej. pemprosesan melalui contoh dan pemprosesan imej lanjutan. Saya percaya bahawa pemula sudah mempunyai pemahaman dan asas praktikal tertentu. Sudah tentu, apa yang diperkenalkan di sini hanyalah fungsi yang sangat asas dan mudah saya harap pembaca dapat mempelajari dan mempraktikkannya secara mendalam untuk memberikan lebih banyak kemungkinan untuk pembangunan Web mereka sendiri.
Atas ialah kandungan terperinci Panduan Pemula untuk Pemprosesan Imej PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!