Rumah >pembangunan bahagian belakang >tutorial php >Memanipulasi gambar dalam php menggunakan gd

Memanipulasi gambar dalam php menggunakan gd

Jennifer Aniston
Jennifer Anistonasal
2025-03-04 09:20:11604semak imbas

Tutorial ini meneroka perpustakaan PHP GD (Grafik) untuk manipulasi imej yang cekap. Menguruskan banyak imej laman web boleh mencabar, tetapi GD mengautomasikan tugas seperti mengubah saiz, menanam, dan penapisan.

Panduan ini meliputi:

  • Penciptaan imej dengan PHP GD: Mewujudkan imej baru, memuatkan fail sedia ada, dan menghasilkan imej dari rentetan.
  • transformasi imej: berputar, skala, menanam, dan membalikkan imej.
  • Penapisan imej: Menggunakan kesan seperti pelarasan skala kelabu dan kontras.
  • Fungsi imej penting: Mendapatkan dimensi imej, menyimpan imej yang diubah suai, dan memanipulasi warna piksel.
  • pemprosesan imej batch: mengubah saiz dan memohon penapis ke semua imej dalam direktori.

Apa itu gd?

Perpustakaan GD PHP memberi anda kuasa untuk memanipulasi dan membuat imej secara langsung dalam skrip PHP anda. Ia mengendalikan keperluan pengeditan imej yang biasa.

Persediaan

pada Windows, aktifkan lanjutan php_gd2.dll dalam fail php.ini anda (sering terletak di xamppphpext). Sahkan pemasangan GD menggunakan imagecreatefrompng(). Fungsi imagecolorsforindex($image, $color) berguna untuk manipulasi warna yang tepat. Walau bagaimanapun, untuk pelarasan warna yang lebih fleksibel, pertimbangkan untuk bekerja dengan komponen warna individu (merah, hijau, biru) untuk membolehkan toleransi.

Manipulating Images in PHP Using GD

Batch Resizing Images

Contoh ini mengubah saiz semua imej JPEG dalam direktori ("Alam/") kepada lebar 640 piksel, secara automatik menyesuaikan ketinggian secara proporsional. Imej saiz diselamatkan ke subdirektori "saiz semula" baru.

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    $im_php = imagescale($im_php, 640);
    $new_height = imagesy($im_php);
    $new_name = str_replace('-1920x1080', '-640x'.$new_height, basename($image));
    imagejpeg($im_php, $directory.'Resized/'.$new_name);
}
Kod ini menggunakan

untuk mencari jpegs, glob() untuk memuatkannya, imagecreatefromjpeg() untuk mengubah saiz, dan imagescale() untuk menyimpan hasilnya. Pelarasan nama fail memastikan kejelasan. imagejpeg()

Batch memohon penapis

Contoh ini menggunakan penapis kelabu dan kontras (-25 untuk peningkatan kontras) kepada semua JPEG dalam "Alam/", menyimpan imej yang ditapis ke subdirektori "kelabu".

$directory = 'Nature/';
$images = glob($directory."*.jpg");

foreach($images as $image) {
    $im_php = imagecreatefromjpeg($image);
    imagefilter($im_php, IMG_FILTER_GRAYSCALE);
    imagefilter($im_php, IMG_FILTER_CONTRAST, -25);
    $new_name = basename($image);
    imagejpeg($im_php, $directory.'Grayscale/'.$new_name);
}

secara langsung mengubah sumber imej. Perhatikan bahawa nilai kontras berkisar dari -100 hingga 100 (nilai negatif meningkatkan kontras). imagefilter()

Kesimpulan

Perpustakaan GD PHP menawarkan keupayaan manipulasi imej yang kuat, menyelaraskan pengurusan imej laman web dan menjimatkan masa yang cukup. Contoh -contoh yang disediakan sebagai asas untuk mewujudkan skrip pemprosesan imej yang lebih kompleks. Fungsi seperti

membolehkan manipulasi imej bersyarat berdasarkan dimensi. imagesx()

Atas ialah kandungan terperinci Memanipulasi gambar dalam php menggunakan gd. 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