Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan PHP untuk menjana gambar secara automatik

Cara menggunakan PHP untuk menjana gambar secara automatik

WBOY
WBOYasal
2023-06-23 08:02:511973semak imbas

Dengan perkembangan pesat Internet, pemprosesan imej telah menjadi bahagian yang amat diperlukan dalam aplikasi web moden. Sama ada anda pengguna biasa atau profesional industri, anda sering perlu mencipta dan mengedit pelbagai imej.

Sebagai tindak balas kepada keperluan ini, PHP telah menjadi bahasa pilihan untuk banyak aplikasi web. Ia mempunyai banyak perpustakaan dan fungsi yang kaya untuk memproses imej dengan mudah. Dalam artikel ini, kami akan menunjukkan kepada anda cara membuat fungsi yang menjana imej secara automatik menggunakan PHP.

1 Fahami perpustakaan GD dan ImageMagick

Sama ada anda menggunakan PHP untuk menjana imej secara automatik atau mana-mana bahasa pengaturcaraan lain, anda perlu menggunakan perpustakaan pemprosesan imej. Dalam PHP, dua perpustakaan pemprosesan imej yang paling banyak digunakan ialah GD dan ImageMagick.

Pustaka GD ialah sambungan PHP untuk mencipta dan memproses pelbagai jenis fail imej. Ia boleh menjana dan memproses format imej JPEG, PNG, GIF dan lain-lain, yang sangat mudah untuk pengaturcara.

ImageMagick ialah perpustakaan yang lebih fleksibel yang menyokong pelbagai format imej, termasuk PNG, GIF, JPEG, TIFF dan SVG. Dan ia boleh digunakan dalam banyak sistem pengendalian yang berbeza.

2. Cipta kanvas asas

Mula-mula, kita perlu mencipta kanvas imej dan kemudian menyimpannya sebagai fail imej.

Untuk menggunakan perpustakaan GD untuk mencipta kanvas, anda perlu menggunakan kod berikut:

$width = 400; // Tetapkan lebar kanvas
$height = 200; / Tetapkan ketinggian kanvas
$image = imagecreatetruecolor($width, $height); // Cipta imej truecolor baharu

Dengan kod di atas, anda telah berjaya mencipta kanvas selebar 400 piksel dan 200 piksel tinggi.

Seterusnya, kami akan menghiasi kanvas kami dengan beberapa elemen asas, seperti garisan, segi empat tepat, bulatan, dsb.

3. Tambahkan elemen pada kanvas

Sebelum menambah elemen pada imej, kita mesti nyatakan warna yang akan digunakan.

Apabila menggunakan perpustakaan GD, anda perlu menentukan warna menggunakan kod berikut:

$red = imagecolorallocate($image, 255, 0, 0); $green = imagecolorallocate ($image, 0, 255, 0); // Green
$blue = imagecolorallocate($image, 0, 0, 255); " fungsi akan Tiga parameter integer yang anda berikan ditukar kepada format warna RGB. Parameter pertama ialah contoh objek imej yang dikembalikan oleh fungsi imagecreatetruecolor.

Kami menggunakan kod berikut untuk melukis garis mendatar pada kanvas:

imagesetthickness($image, 5); // Tetapkan lebar garisan

imageline($image, 0, 100, 400 , 100, $red); // Lukis garisan dari (0,100) hingga (400,100)

Gunakan fungsi "imagecolorallocate" untuk menetapkan susunan warna, gunakan fungsi "imageline" untuk lukis garisan pada kanvas, dan set berwarna merah.

Seterusnya, mari lukis segi empat tepat:

gambar segi empat tepat($imej, 100, 50, 300, 150, $hijau); // Dari titik (100,50) hingga (300,150 ) lukis segi empat tepat di antara

Anda akan melihat bahawa kami menggunakan fungsi "imagerectangle" untuk melukis segi empat tepat. Ia juga memerlukan parameter warna, di sini kami memilih hijau.

Akhir sekali, kami menambah bulatan yang diisi pada kanvas, kodnya adalah seperti berikut:

imagefilledellipse($image, 200, 100, 150, 150, $blue); bulatan dengan jejari 75 Ellipse

Bulatan adalah serupa dengan segi empat tepat dan garisan, lebar bulatan atau elips yang diisi bukanlah lebar garis yang ditentukan, tetapi diameter atau panjang dan lebar yang ditentukan.

4. Simpan imej sebagai fail

Kami kini bersedia untuk menyimpan imej sebagai fail. Aliran kerja menggunakan perpustakaan GD adalah sangat mudah, hanya hantar objek imej ke fungsi imagepng (sebagai contoh) untuk mengeluarkan imej ke penyemak imbas.

Untuk menyimpan imej sebagai fail, anda perlu menggunakan kod berikut:

imagepng($image, 'image.png'); // Simpan imej sebagai "imej. png"

Ini akan mencipta fail PNG bernama "image.png" dalam direktori kod anda.

5. Aplikasi Komprehensif

Kini, kami telah mempelajari beberapa fungsi untuk mencipta elemen grafik asas. Seterusnya, mari gunakan gabungan fungsi ini untuk mencipta fail imej yang dipanggil "myimage.jpg" yang mengandungi 10 baris rawak yang sama jaraknya.

$lebar = 600;

$tinggi = 400;

$imej = imagecreatetruecolor($lebar, $tinggi);
$putih = imagecolorallocate($imej, 255, 255, 255);

isi imej($imej, 0, 0, $putih);


untuk($i=0; $i<11; $i++){

$x1 = $i * $width / 10;
$y1 = rand(0, $height);
$x2 = $width - $x1;
$y2 = rand(0, $height);
$color = imagecolorallocate($image, rand(0,255), rand(0,255), rand(0,255));
imagesetthickness($image, 2);
imageline($image, $x1, $y1, $x2, $y2, $color);

}

header('Content-type: image/jpeg');

imagejpeg($image, 'myimage.jpg');

Kod di atas menghasilkan 600 piksel lebar, Kanvas kosong setinggi 400 piksel. Kemudian, lukis 10 garis rawak pada kanvas itu, setiap baris akan menjadi warna rawak. Akhir sekali, simpan imej baharu ini sebagai fail "myimage.jpg".

Ringkasan

Dalam artikel ini, kami mempelajari cara membuat aplikasi yang menjana imej secara automatik menggunakan perpustakaan PHP GD. Kami belajar cara mencipta kanvas baharu, memanipulasi warna, melukis garisan, melukis segi empat tepat, melukis elips dan menjana fail imej.

Anda boleh menggunakan teknik asas ini untuk mencipta penjana imej anda sendiri, alat visualisasi data ringkas dan perisian pemprosesan imej. Secara umum, dalam industri Web, keperluan untuk menjana imej secara automatik semakin kerap, dan menggunakan PHP dan perpustakaannya seperti GD dan ImageMagick boleh membantu anda merealisasikan idea ini dengan mudah.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk menjana gambar secara automatik. 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