Fungsi pemprosesan imej untuk aplikasi PHP
Sebagai bahasa pembangunan web yang berkuasa, PHP secara semula jadi mempunyai pelbagai fungsi aplikasi praktikal. Antaranya, fungsi untuk memproses imej adalah salah satunya. Pemprosesan imej adalah bahagian yang tidak dapat dielakkan dalam pembangunan web Daripada pemotongan dan penskalaan imej yang mudah kepada kesan khas imej yang kompleks, penapis, dll., fungsi pemprosesan imej diperlukan. Artikel ini akan memperkenalkan beberapa fungsi pemprosesan imej yang biasa digunakan dalam PHP.
1. Jenis imej dan perwakilan data
Dalam PHP, jenis imej biasa termasuk JPEG, GIF, PNG, dll. Jenis gambar yang berbeza mempunyai struktur data yang berbeza. Sebagai contoh, data imej JPEG adalah berdasarkan pekali transformasi DCT, manakala data imej PNG adalah berdasarkan nilai warna piksel. Dalam PHP, kita perlu menggunakan pustaka sambungan yang berbeza untuk menghuraikan dan memproses pelbagai jenis imej, terutamanya termasuk sambungan GD2 dan Imagick.
Sama ada menggunakan GD2 atau Imagick, kami perlu memuatkan data imej ke dalam memori untuk diproses. Oleh itu, apabila menggunakan fungsi pemprosesan imej, anda perlu menukar data imej kepada jenis data yang sepadan terlebih dahulu. Mengambil GD2 sebagai contoh, kaedah pemuatan data imej biasa adalah seperti berikut:
//加载JPEG图片 $image = imagecreatefromjpeg('image.jpg'); //加载PNG图片 $image = imagecreatefrompng('image.png'); //加载GIF图片 $image = imagecreatefromgif('image.gif');
Apabila menggunakan Imagick, data imej perlu dimuatkan dan diproses melalui objek Imagick. Contohnya:
//实例化Imagick对象并加载图片 $im = new Imagick('image.jpg'); //调整图片大小 $im->resizeImage(320, 240, Imagick::FILTER_LANCZOS, 1); //输出图片 header('Content-Type: image/jpeg'); echo $im;
2. Operasi asas
- Mengubah saiz imej
Saiz semula imej ialah keperluan pemprosesan imej yang biasa, sama ada mengecil atau membesar. Dalam GD2, anda boleh menggunakan fungsi imagecopyresampled() untuk mencapai saiz semula imej. Fungsi ini akan menskalakan imej asal mengikut saiz yang ditentukan dan mengeluarkan data imej yang dilaraskan. Contohnya:
//打开原始图片 $src = imagecreatefromjpeg('image.jpg'); //设置目标图片尺寸 $dst_width = 320;//目标宽度 $dst_height = 240;//目标高度 //创建目标图片 $dst = imagecreatetruecolor($dst_width, $dst_height); //缩放图片 imagecopyresampled($dst, $src, 0, 0, 0, 0, $dst_width, $dst_height, imagesx($src), imagesy($src)); //输出图片 header('Content-Type: image/jpeg'); imagejpeg($dst); //释放内存 imagedestroy($src); imagedestroy($dst);
Dalam Imagick, saiz semula imej dicapai melalui kaedah resizeImage(). Contohnya:
//打开原始图片 $im = new Imagick('image.jpg'); //设置目标图片尺寸 $im->resizeImage(320, 240, Imagick::FILTER_LANCZOS, 1); //输出图片 header('Content-Type: image/jpeg'); echo $im;
- Pemotongan Gambar
Pemotongan Gambar biasanya digunakan untuk memangkas dan memintas gambar. Dalam GD2, anda boleh menggunakan fungsi imagecopy() untuk mencapai pemotongan imej. Fungsi ini akan menyalin piksel dalam kawasan yang ditentukan bagi imej asal kepada imej sasaran dan mengeluarkan data imej yang dipotong. Contohnya:
//打开原始图片 $src = imagecreatefromjpeg('image.jpg'); //设置目标图片尺寸 $dst_width = 320;//目标宽度 $dst_height = 240;//目标高度 //设置剪切位置和尺寸 $x = 100;//起始X坐标 $y = 100;//起始Y坐标 $width = 160;//剪切宽度 $height = 120;//剪切高度 //创建目标图片 $dst = imagecreatetruecolor($dst_width, $dst_height); //剪切图片 imagecopy($dst, $src, 0, 0, $x, $y, $width, $height); //输出图片 header('Content-Type: image/jpeg'); imagejpeg($dst); //释放内存 imagedestroy($src); imagedestroy($dst);
Dalam Imagick, pemangkasan imej dilaksanakan melalui kaedah cropImage(). Contohnya:
//打开原始图片 $im = new Imagick('image.jpg'); //设置剪切位置和尺寸 $x = 100;//起始X坐标 $y = 100;//起始Y坐标 $width = 160;//剪切宽度 $height = 120;//剪切高度 //剪切图片 $im->cropImage($width, $height, $x, $y); //输出图片 header('Content-Type: image/jpeg'); echo $im;
3. Operasi lanjutan
- Tanda air teks
Tanda air teks ialah kesan khas imej biasa, yang boleh digunakan untuk menjana lakaran kecil dan kelompok Ia sering digunakan dalam senario seperti memuat naik gambar. Dalam GD2, anda boleh menggunakan fungsi imagettftext() untuk melaksanakan tera air teks. Fungsi ini akan melukis teks yang ditentukan pada imej dan mengeluarkan data imej tera air. Contohnya:
//打开原始图片 $src = imagecreatefromjpeg('image.jpg'); //设置文本颜色 $color = imagecolorallocate($src, 255, 0, 0); //设置字体文件路径 $font = 'arial.ttf'; //设置字体大小 $size = 20; //设置水印文本 $text = 'www.example.com'; //计算文本位置 $bbox = imagettfbbox($size, 0, $font, $text); $x = imagesx($src) - $bbox[2] - 5; $y = imagesy($src) - $bbox[1] - 5; //添加水印 imagettftext($src, $size, 0, $x, $y, $color, $font, $text); //输出图片 header('Content-Type: image/jpeg'); imagejpeg($src); //释放内存 imagedestroy($src);
Dalam Imagick, tera air teks dilaksanakan melalui kaedah annotateImage(). Contohnya:
//打开原始图片 $im = new Imagick('image.jpg'); //创建画笔对象 $draw = new ImagickDraw(); //设置字体路径和大小 $draw->setFont('arial.ttf'); $draw->setFontSize(20); //设置文本位置和颜色 $draw->setGravity(Imagick::GRAVITY_SOUTHEAST); $draw->setFillColor('red'); //添加水印文本 $draw->annotation(5, 5, 'www.example.com'); //绘制水印 $im->drawImage($draw); //输出图片 header('Content-Type: image/jpeg'); echo $im;
- Kesan khas gambar
Kesan khas gambar ialah fokus dan kesukaran pemprosesan gambar, seperti kabur, mengasah, pelepasan dan kesan lain, yang memerlukan untuk diproses melalui algoritma. Dalam GD2, anda boleh menggunakan fungsi imagefilter() untuk melaksanakan kesan khas imej. Fungsi ini akan menapis imej asal dan mengeluarkan data imej selepas kesan khas. Contohnya:
//打开原始图片 $src = imagecreatefromjpeg('image.jpg'); //创建滤镜 $filter = IMG_FILTER_GRAYSCALE;//灰度滤镜 //应用滤镜 imagefilter($src, $filter); //输出图片 header('Content-Type: image/jpeg'); imagejpeg($src); //释放内存 imagedestroy($src);
Dalam Imagick, kesan khas gambar dicapai melalui kaedah yang berbeza. Contohnya, gunakan kaedah gaussianBlurImage() untuk mencapai kesan kabur Gaussian:
//打开原始图片 $im = new Imagick('image.jpg'); //应用高斯模糊滤镜 $im->gaussianBlurImage(10, 5); //输出图片 header('Content-Type: image/jpeg'); echo $im;
4. Ringkasan
Artikel ini memperkenalkan fungsi pemprosesan imej biasa dalam PHP, termasuk operasi asas dan operasi lanjutan. Sama ada saiz semula imej, pemangkasan, penanda air teks atau kesan khas imej, semuanya boleh dicapai melalui dua perpustakaan sambungan GD2 dan Imagick. Apabila menggunakan fungsi ini, kita perlu memberi perhatian kepada perbezaan dalam jenis imej dan perwakilan data, dan memilih fungsi dan parameter yang sesuai mengikut keperluan sebenar. Pada masa yang sama, anda juga perlu memberi perhatian kepada isu seperti penggunaan memori dan prestasi untuk mengelakkan tekanan pada pelayan.
Atas ialah kandungan terperinci Fungsi pemprosesan imej untuk aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

CakePHP ialah rangka kerja MVC sumber terbuka. Ia menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP mempunyai beberapa perpustakaan untuk mengurangkan beban tugas yang paling biasa.
