Membuat Bentuk Shape Dengan php Sebelum fungsi gambar
Membuat Bentuk (Shape) Dengan php
• Sebelum fungsi gambar digunakan, skrip harus mengirimkan header yang memberitahukan format gambar yang akan dibuat. Menggunakan fungsi header() sebagai berikut: Header(“Content-Type: image/format”) • Dengan format adalah format gambar yang akan dihasilkan. Format yang didukung diantaranya adalah gif, jpeg, png, dan wbmp. Khusus untuk format wbmp, isi content-type yang harus dituliskan adalah image/vnd. wap. wbmp.
Fungsi Image. Create() • Fungsi ini merupakan fungsi yang pertama kali dijalankan dalam membuat gambar. Sintaksnya: $img = Imagecreate(x, y) • Parameter x dan y merupakan integer yang menyatakan ukuran lebar dan tinggi gambar dalam pixel, sedangkan $img merupakan variabel yang menyimpan nilainya. • Variabel $img digunakan sebagai parameter pada fungsi-fungsi selanjutnya.
Fungsi Image. Color. Allocate() • Fungsi ini merupakan fungsi yang mengalokasikan sebuah warna dan menyimpannya ke dalam sebuah variabel. Sintaksnya: $warna = Image. Color. Allocate($img, r, g, b) • Parameter r, g, dan b merupakan integer dengan jangkauan nilai 0 sampai dengan 255 yang menyatakan suatu komposisi warna dalam format RGB (Red Green Blue). Semakin kecil nilainya, semakin gelap warnanya. • Variabel $warna untuk selanjutnya akan digunakan sebagai parameter pada fungsi-fungsi selanjutnya.
Fungsi Image. Color. De. Allocate() • Fungsi ini kebalikan fungsi Image. Color. Allocate(), yaitu menghapus sebuah warna yang telah dialokasikan. Sintaksnya: Image. Color. De. Allocate($img, $warna)
Fungsi Output Gambar • Ada 4 fungsi yang digunakan untuk menghasilkan output ke browser berupa gambar, yaitu Image. GIF, Image. JPEG, Image. PNG, dan Image. WBMP. • Penggunannya tergantung dari tipe gambar yang didukung oleh versi PHP yang digunakan. Sintaksnya: Image. GIF($img[, namafile]) Image. PNG($img[, namafile]) Image. WBMP($img[, namafile]) Image. JPEG($img[, namafile[, kualitas]]) • Jika parameter namafile disertakan, maka output tidak dikirimkan ke browser, melainkan menjadi sebuah file yang bernamafile.
Fungsi Image. Fill() • Fungsi ini digunakan untuk memberi warna pada “kanvas” yang telah dibuat. Sintaksnya: Image. Fill($img, x, y, $warna) • Parameter x, y adalah koordinat yang merupakan titik awal pewarnaan, dengan nilai 0, 0 terletak pada kiri atas.
Fungsi Image. Destroy() • Fungsi ini akan mengosongkan variabel yang digunakan untuk menyimpan gambar. Sintaksnya: Image. Destroy($img)
Fungsi Image. Arc() • Fungsi ini untuk menggambar bentuk elips, baik berupa kurva terbuka maupun kurva tertutup. Sintaksnya : Image. Arc($img, x, y, l, t, aw, ak, $warna) • Fungsi ini akan menggambar bentuk elips dengan pusat di x, y (0, 0 terletak di kiri atas), dengan tinggi t dan lebar l, serta titik awal dan titik akhir diwakili oleh aw dan ak dalam derajat. • Dengan demikian, jika t dan l diisi dengan nilai yang sama, kemudian aw dan ak adalah 0 dan 360, maka yang tergambar adalah lingkaran.
<? Header(“Content-Type: image/jpeg”); $img = Image. Create(300, 300); $biru = Image. Color. Allocate($img, 0, 0, 255); $hitam = Image. Color. Allocate($img, 0, 0, 0); Image. Fill($img, 0, 0, $biru); Image. Arc($img, 150, 280, 0, 360, $hitam); Image. JPEG($img); ? >
• Dalam contoh-contoh sebelumnya skrip PHP, selalu menggunakan tag-tag HTML, diawali dengan tag <HTML>, <HEAD>, dan seterusnya. • berikutnya tag-tag tersebut tidak digunakan, sebab fungsi header pada skrip tersebut memberikan informasi bahwa output yang dikirimkan ke browser memiliki content-type berupa file gambar, bukan file HTML.
Fungsi imageellipse • Karena elips digambar mulai dari 0 hingga 360 derajat, maka gambar yang dihasilkan berupa kurva tertutup. • Jika elips digambar mulai dari 0 hingga 180 derajat, maka hasilnya adalah setengah elips, atau elips dengan kurva terbuka. • Untuk menggambar elips dengan kurva selalu tertutup, dapat menggunakan fungsi Image. Ellipse. Sintaksnya: imageellipse ($img, x, y, l, t, $warna) • Fungsi ini baru terdapat pada PHP 4. 0. 6
Fungsi Image. Line() • Fungsi ini digunakan untuk menggambar garis. Sintaksnya : Image. Line($img, x 1, y 1, x 2, y 2, $warna) • Parameter x 1, y 1 merupakan koordinat awal garis dan x 2, y 2 merupakan koordinat akhir garis. • Fungsi yang mirip dengan Image. Line(), yaitu Image. Dashed. Line(), yang digunakan untuk menggambar garis putus-putus. Sintaks penggunaannya sama dengan fungsi Image. Line().
<? Header(“Content-Type: image/jpeg”); $img = Image. Create(300, 300); $biru = Image. Color. Allocate($img, 0, 0, 255); $merah = Image. Color. Allocate($img, 255, 0, 0); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $putih); Image. Line($img, 0, 0, 300, $biru); Image. Line($img, 0, 150, 300, 150, $merah); Image. JPEG($img); ? >
Fungsi Image. Rectangle() • Fungsi ini digunakan untuk menggambar empat persegi panjang. Sintaksnya: Image. Rectangle($img, x 1, y 1, x 2, y 2, $warna) • Parameter x 1, y 1 merupakan titik kiri atas dari empat persegi panjang, sedangkan x 2, y 2 merupakan titik kanan bawahnya.
<? Header("Content-Type: image/jpeg"); $img = Image. Create(300, 300); $biru = Image. Color. Allocate($img, 0, 0, 255); $merah = Image. Color. Allocate($img, 255, 0, 0); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $putih); Image. Rectangle($img, 0, 0, 200, $biru); Image. JPEG($img); ? >
Fungsi Image. Polygon() • Fungsi ini digunakan untuk menggambar polygon (kurva banyak sisi atau banyak sudut). Sintaksnya: imagepolygon ($img, array_sudut, jml_sudut, $warna) • Parameter array_sudut adalah array yang berisi koordinat dari setiap titik sudut polygon, misalnya $titik[0]=x 1, $titik[1]=y 1, $titik[2]=x 2, $titik[3]=x 3, dan seterusnya. • Parameter jml_sudut adalah jumlah titik sudut dari polygon yang akan digambar.
<? Header("Content-Type: image/jpeg"); $img = Image. Create(300, 300); $warna = Image. Color. Allocate($img, 157, 25, 12); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $putih); $titik[0]=0; $titik[1]=0; $titik[2]=60; $titik[3]=30; $titik[4]=60; $titik[5]=100; $titik[6]=120; $titik[7]=190; $titik[8]=210; $titik[9]=60; Image. Polygon($img, $titik, 5, $warna); Image. JPEG($img); ? >
• Karena akan dibuat polygon dengan 5 titik sudut, maka diperlukan array dengan 10 komponen, karena setiap titik sudut memerlukan 2 angka sebagai koordinatnya • Dengan demikian, contoh gambar polygon tersebut akan mempunyai titik sudut pada (0, 0), (60, 30), (60, 100), (120, 190), dan (210, 60).
Pada dasarnya alur pemrograman menggambar dengan PHP adalah sebagai berikut: 1. Kirimkan header berisi informasi gambar yang akan dihasilkan. 2. Buatlah sebuah gambar dengan fungsi Image. Create 3. Alokasikan warna-warna yang akan digunakan 4. Warnailah kanvas dengan salah satu warna yang telah dialokasikan 5. Buatlah gambar dengan fungsi-fungsi gambar 6. Cetak gambar tersebut dengan fungsi output gambar.
• Ada beberapa fungsi yang menghasilkan bentuk elips, kotak, serta polygon disertai dengan “isi” warna. Fungsi-fungsi tersebut adalah: imagefilledarc() imagefilledellipse() imagefilledpolygon() imagefilledrectangle()
<? php Header("Content-Type: image/jpeg"); $img = Image. Create(300, 300); $biru = Image. Color. Allocate($img, 0, 0, 255); $merah = Image. Color. Allocate($img, 255, 0, 0); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $putih); Image. Filled. Rectangle($img, 0, 0, 200, $biru); Image. JPEG($img); ? >
Fungsi Image. String() dan Image. String. Up() • Kedua fungsi ini digunakan untuk menggambar sebuah string. Perbedaannya adalah fungsi Image. String() menggambar sebuah string dengan posisi horizontal, sedangkan fungsi Image. String. Up() dengan posisi vertikal. Sintaksnya adalah sebagai berikut: Image. String($img, font, x, y, string, $warna) Image. String. Up($img, font, x, y, string, $warna) • Parameter font terdiri dari integer dari 1 sampai dengan 5 untuk mengambil built-in font dengan nilai 1 merupakan font berukuran terkecil dan 5 terbesar, sedangkan parameter string adalah string yang akan dimunculkan sebagai gambar.
<? php Header("Content-Type: image/jpeg"); $img = Image. Create(300, 300); $biru = Image. Color. Allocate($img, 0, 0, 255); $merah = Image. Color. Allocate($img, 255, 0, 0); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $putih); Image. String($img, 5, 30, "Belajar PHP", $biru); Image. String. Up($img, 5, 150, "Mudah lho", $merah); Image. JPEG($img); ? >
Fungsi Image. Fill. To. Border() • Fungsi ini akan memberi warna pada suatu area sampai batas tertentu. Sintaksnya adalah sebagai berikut: Image. Fill. To. Border($img, x, y, batas, $warna) • Fungsi ini akan memberi warna sesuai parameter $warna dari x, y sampai dengan menemui batas yang disebutkan pada parameter batas. Parameter batas sendiri merupakan sebuah warna.
<? php Header("Content-Type: image/jpeg"); $img = Image. Create(300, 300); $hitam = Image. Color. Allocate($img, 0, 0, 0); $biru = Image. Color. Allocate($img, 0, 0, 255); $putih = Image. Color. Allocate($img, 255, 255); Image. Fill($img, 0, 0, $biru); Image. Arc($img, 150, 250, 175, 0, 360, $putih); Image. Fill. To. Border($img, 150, $putih, $hitam); Image. JPEG($img); ? >
Fungsi Image. Types() • Fungsi ini digunakan untuk memeriksa tipe gambar apa saja yang didukung oleh PHP pada server yang bersangkutan. Sintaksnya: Image. Types() • Fungsi ini menghasilkan nilai bit yang bersesuaian dengan format gambar yang didukung, yaitu IMG_GIF, IMG_JPG, IMG_PNG, dan IMG_WBMP. Jika ingin diperiksa apakah PHP pada server yang bersangkutan mendukung format JPEG, maka dapat digunakan cara sebagai berikut: <? php if (Image. Types() & IMG_JPG) { echo "PHP mendukung format JPEG"; } ? >
Fungsi Image. Set. Pixel() • Fungsi ini digunakan untuk menggambar sebuah titik (pixel). Sintaksnya: Image. Set. Pixel($img, x, y, $warna) • Parameter x, y merupakan koordinat dimana titik tersebut akan digambar
Membuat Captcha (Simpan skrip berikut dengan nama captcha) <? php //memulai session_start(); header("Content-Type: image/jpeg"); //fungsi untuk membuat gambar $image=imagecreate(75, 40); //menentukan warna background Image. Fill($image, 0, 0, imagecolorallocate($image, 0, 0, 225)); //biru //menentukan warna text $warnatext=imagecolorallocate($image, 255, 255); //putih //mengenerate angka $angka 1=rand(0, 9); $angka 2=rand(0, 9); $angka 3=rand(0, 9); $angka 4=rand(0, 9); $code=$angka 1. $angka 2. $angka 3. $angka 4; //menyimpan kode dalam session $_SESSION['captcha']=$code; //menulis kode pada gambar imagestring($image, 5, 18, 12, $code, $warnatext); //output gambar Image. JPEG($image, "", 90); //membebaskan memori imagedestroy($image); ? > Simpan program di atas dengan nama captcha. php
Membuat Form Input Captcha (Simpan skrip berikut dengan nama Main. Captcha) <? php //memulai session_start(); if(isset($_POST['submit'])) { //membaca kode dari form $code=$_POST['code']; //memanggil kode yang di simpan di session $captcha=$_SESSION['captcha']; //pengecekan kode if($code == $captcha) {echo("Selamat anda benar memasukan angka pada gambar"); } else echo("Maaf, anda salah memasukan angka pada gambar"); } else{ } ? > <form action="main. php" method="post"> <img src="captcha. php" alt="captcha"/> <br/> Masukan kode pada gambar<br/> <input type="text" name="code" maxlength="4"/><br/> <input type="submit" name="submit" value="submit"/></form> <? php Simpan program di atas dengan nama main. php
- Slides: 30