Terakhir kali saya berbicara tentang metode menggambar sederhana yang menghindari GD, dan kemudian saya menggunakan GD untuk menggambar "gambar" paling sederhana - garis lurus.
Kali ini saya akan terus menggambar garis lurus ke bawah. Bagian yang dijelaskan secara detail pada kode terakhir tidak akan terulang kali ini.
<?
Header("Jenis Konten: gambar/png");
$im = Buat Gambar (200, 100);
$col_black = Alokasi Warna Gambar($im, 0,0,0);
$col_orn = Alokasi Warna Gambar($im, 255.192,0);
// Ayo gunakan warna oranye hari ini.
// Penggunaannya sama persis dengan fungsi imageline,
ImageDashedLine($im,0,100,199,100,$col_orn);
// Ini menggambar garis putus-putus.
// Ayo lakukan tes di bawah ini. Digunakan untuk mengilustrasikan suatu masalah.
$col_yel = Alokasi Warna Gambar($im, 255.255,0);
//kuning.
ImageLine($im,0,99,199,99,$col_yel);
// Gambarlah garis kuning di tepi bawah gambar.
ImageLine($im,200,0,200,100,$col_orn);
// Mencoba menggambar garis oranye di tepi paling kanan gambar, tapi tidak terjadi apa-apa.
// Hal ini menunjukkan bahwa rentang koordinat gambar dengan lebar 200 dan tinggi 100 adalah (0,0) sampai (199,99).
GambarPNG($im);
Penghancuran Gambar($im);
// Mari kita akhiri bagian ini dulu.
?>
Efek selanjutnya akan luar biasa! Saya juga belajar sekarang dan menjual sekarang. PHP 4.0.6 dan yang lebih baru menambahkan penggunaan ini - Anda dapat menggambar garis dengan warna alternatif! Contohnya seperti berikut:
<?
Header("Jenis Konten: gambar/png");
$im = Buat Gambar (200, 100);
$col_black = Alokasi Warna Gambar($im, 0,0,0);
$col_orn = Alokasi Warna Gambar($im, 255.192,0);
$col_red = ImageColorAllocation($im, 255,0,0);
$style=array($col_red,$col_red,$col_black,$col_orn,$col_orn,$col_orn,$col_black);
ImageSetStyle($im, $gaya);
ImageLine($im, 0, 50, 199, 50, IMG_COLOR_STYLED)
;
Penghancuran Gambar($im);
?>
Lihatlah efeknya.
Tolong jelaskan tiga baris yang saya pisahkan dengan baris kosong. Sebuah array $style didefinisikan, yang anggotanya berupa serangkaian warna;
Kemudian sebuah fungsi dijalankan, dan kemudian "warna" IMG_COLOR_STYLED digunakan untuk menggambar "garis lurus" yang ajaib—
Efek bergantian merah, hitam, oranye. Jika Anda perhatikan lebih dekat, Anda akan menemukan bahwa rangkaian warna merah, hitam, dan oranye bergantian adalah apa yang kita definisikan
Urutan anggota array $style: merah, merah, hitam, oranye, oranye, oranye, hitam, dan kemudian siklus dimulai lagi...
Apakah kamu mengerti? Perhatikan bahwa fungsi ini hanya didukung setelah PHP 4.0.6.
Dengan dasar-dasar menggambar garis yang telah saya jelaskan secara detail, saya ingin menulis fungsi menggambar bangun datar lainnya sekaligus. Yang perlu saya ingatkan kepada semua orang adalah bahwa apa pun jenis bangun geometris yang Anda gambar, itu tidak lebih dari menangkap beberapa elemen dari bangun tersebut. Selain warna dulu, unsur-unsur berbagai grafiknya adalah sebagai berikut:
titik, dua unsur: absis dan ordinat
persegi panjang, empat unsur: absis dan busur ordinat
di pojok kiri atas dan pojok kanan bawah. Busur elips; menggambar busur dan menggambar 360 derajat untuk membentuk lingkaran; menggambar busur elips dan menggambar 360 derajat untuk membentuk lingkaran.
Bentuknya elips; oleh karena itu, ada enam elemen busur ini: koordinat horizontal dan vertikal titik pusat, panjang sumbu horizontal, panjang sumbu vertikal, serta titik awal dan akhir busur.
Lihatlah contoh berikut.
<?
Header("Jenis Konten: gambar/png");
$im = Buat Gambar (200, 100);
$col_blk = Alokasi Warna Gambar($im, 0,0,0);
$col_orn = Alokasi Warna Gambar($im, 255.192,0);
$col_red = Alokasi Warna Gambar($im, 255,0,0);
$col_grn = Alokasi Warna Gambar($im, 0,255,0);
$col_blu = Alokasi Warna Gambar($im, 0,0,255);
ImageSetPixel($im,20,10,$col_orn);
// Itu titik kecil, apa aku bisa melihatnya?
GambarRectangle($im,25,20,95,55,$col_blu);
// Persegi panjang biru.
ImageArc($im,20,85,50,40,225,360,$col_grn);
// Busur elips hijau, pusat di (20,85), sumbu horizontal 50, sumbu vertikal 40, 225 derajat hingga 360 derajat.
// Terlihat bahwa titik awal dan akhir busur di sini diukur dalam sudut.
// Dihitung searah jarum jam dengan arah horizontal kanan 0 derajat.
ImageArc($im,160,60,40,40,0,360,$col_orn);
// Lingkaran penuh oranye. Sepanjang sumbu horizontal sama dengan panjang sumbu vertikal, maka lingkaran tersebut adalah lingkaran sempurna.
// Kita semua belajar di SMA: lingkaran adalah kasus khusus dari elips!
//Akhirnya menggambar busur lainnya. Bisakah pusat lingkaran berada di luar bayangan?
ImageArc($im,160,140,240,240,0,360,$col_red);
// Bisa!
GambarPNG($im);
Penghancuran Gambar($im);
?>
Tentu saja tidak bisa dihindari untuk mengecat suatu area dengan warna tertentu saat menggambar. GD memiliki tiga metode pewarnaan, yang pertama adalah pewarnaan bidang persegi panjang,
Yang pertama adalah mewarnai area tertutup tempat titik tertentu berada, dan yang kedua adalah mewarnai area yang dikelilingi dengan warna tertentu. Lihatlah contoh berikut:
<?
Header("Jenis Konten: gambar/png");
$im = Buat Gambar (200, 100);
$col_blk = Alokasi Warna Gambar($im, 0,0,0);
$col_orn = Alokasi Warna Gambar($im, 255.192,0);
$col_yel = Alokasi Warna Gambar($im, 255.255,0);
$col_red = Alokasi Warna Gambar($im, 255,0,0);
$col_grn = Alokasi Warna Gambar($im, 0,255,0);
$col_blu = Alokasi Warna Gambar($im, 0,0,255);
GambarFilledRectangle($im,20,10,100,50,$col_blu);
GambarFilledRectangle($im,5,40,50,90,$col_red);
GambarFilledRectangle($im,40,80,100,95,$col_orn);
GambarFilledRectangle($im,90,35,110,90,$col_yel);
//Di atas adalah pewarnaan pertama. Gambarlah persegi panjang secara langsung.
// Aku sengaja mengelilingi area kecil dengan empat persegi panjang dengan warna berbeda.
// Digunakan untuk mengilustrasikan pewarnaan kedua.
GambarPNG($im);
Penghancuran Gambar($im);
// Lihatlah efeknya.
?>
Lalu:
<?
Header("Jenis Konten: gambar/png");
$im = Buat Gambar (200, 100);
$col_blk = Alokasi Warna Gambar($im, 0,0,0);
$col_orn = Alokasi Warna Gambar($im, 255.192,0);
$col_yel = Alokasi Warna Gambar($im, 255.255,0);
$col_red = Alokasi Warna Gambar($im, 255,0,0);
$col_grn = Alokasi Warna Gambar($im, 0,255,0);
$col_blu = Alokasi Warna Gambar($im, 0,0,255);
GambarFilledRectangle($im,20,10,100,50,$col_blu);
GambarFilledRectangle($im,5,40,50,90,$col_red);
GambarFilledRectangle($im,40,80,100,95,$col_orn);
GambarFilledRectangle($im,90,35,110,90,$col_yel);
//Di atas adalah pewarnaan pertama. Gambarlah persegi panjang secara langsung.
// Aku sengaja mengelilingi area kecil dengan empat persegi panjang dengan warna berbeda.
> // Digunakan untuk mengilustrasikan pewarnaan kedua.
Isi Gambar($im,70,70,$col_grn);
// Ini pewarnaan kedua.
GambarRectangle($im,120,40,190,90,$col_grn);
// Mari menggambar persegi panjang untuk membuat bingkai. Sebenarnya, bentuk pembatas apa pun bisa digunakan sebagai bingkai.
ImageFilltoBorder($im,130,50,$col_grn,$col_orn);
// Warnai persegi panjang hijau dengan warna oranye.
// Selama titik yang ditentukan berada dalam cakupan "kotak" ini, tidak ada hubungannya dengan posisi titik di area tersebut.
// Fungsi ini sebenarnya bekerja seperti ini:
//Mulai dari titik yang ditentukan dan lihat ke luar untuk menemukan batas warna yang ditentukan.
// Jika Anda tidak dapat menemukannya, warnai titik lewat dengan warna yang diinginkan.
GambarPNG($im);
Penghancuran Gambar($im);
// Lihatlah efeknya.
// Sekarang gambar yang kita buat berwarna-warni, tetapi di browser, pada gambar,
// Klik kanan->Properti: Hanya 214 byte!
?>
Mari kita berhenti di sini kali ini.