Membuat Gambar - WordPress.com

advertisement
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 ImageCreate()
• 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 ImageColorAllocate()
• Fungsi ini merupakan fungsi yang mengalokasikan
sebuah warna dan menyimpannya ke dalam sebuah
variabel. Sintaksnya:
$warna = ImageColorAllocate($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 ImageColorDeAllocate()
• Fungsi ini kebalikan fungsi ImageColorAllocate(),
yaitu menghapus sebuah warna yang telah
dialokasikan. Sintaksnya:
ImageColorDeAllocate($img,$warna)
Fungsi Output Gambar
• Ada 4 fungsi yang digunakan untuk menghasilkan
output ke browser berupa gambar, yaitu ImageGIF,
ImageJPEG, ImagePNG, dan ImageWBMP.
• Penggunannya tergantung dari tipe gambar yang
didukung oleh versi PHP yang digunakan. Sintaksnya:
ImageGIF($img[,namafile])
ImagePNG($img[,namafile])
ImageWBMP($img[,namafile])
ImageJPEG($img[,namafile[,kualitas]])
• Jika parameter namafile disertakan, maka output tidak
dikirimkan ke browser, melainkan menjadi sebuah file
yang bernama namafile.
Fungsi ImageFill()
• Fungsi ini digunakan untuk memberi warna pada
“kanvas” yang telah dibuat. Sintaksnya:
ImageFill($img,x,y,$warna)
• Parameter x,y adalah koordinat yang merupakan
titik awal pewarnaan, dengan nilai 0,0 terletak
pada kiri atas.
Fungsi ImageDestroy()
• Fungsi ini akan mengosongkan variabel yang
digunakan untuk menyimpan gambar.
Sintaksnya:
ImageDestroy($img)
Fungsi ImageArc()
• Fungsi ini untuk menggambar bentuk elips, baik berupa
kurva terbuka maupun kurva tertutup. Sintaksnya :
ImageArc($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 = ImageCreate(300,300);
$biru = ImageColorAllocate($img,0,0,255);
$hitam = ImageColorAllocate($img,0,0,0);
ImageFill($img,0,0,$biru);
ImageArc($img,150,150,150,280,0,360,$hitam);
ImageJPEG($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 ImageEllipse. Sintaksnya:
imageellipse ($img, x, y, l, t, $warna)
• Fungsi ini baru terdapat pada PHP 4.0.6
Fungsi ImageLine()
• Fungsi ini digunakan untuk menggambar garis. Sintaksnya :
ImageLine($img,x1,y1,x2,y2,$warna)
• Parameter x1,y1 merupakan koordinat awal garis dan
x2,y2 merupakan koordinat akhir garis.
• Fungsi yang mirip dengan ImageLine(), yaitu
ImageDashedLine(), yang digunakan untuk menggambar
garis putus-putus. Sintaks penggunaannya sama dengan
fungsi ImageLine().
<?
Header(“Content-Type:image/jpeg”);
$img = ImageCreate(300,300);
$biru = ImageColorAllocate($img,0,0,255);
$merah = ImageColorAllocate($img,255,0,0);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($img,0,0,$putih);
ImageLine($img,0,0,300,300,$biru);
ImageLine($img,0,150,300,150,$merah);
ImageJPEG($img);
?>
Fungsi ImageRectangle()
• Fungsi ini digunakan untuk menggambar
empat persegi panjang. Sintaksnya:
ImageRectangle($img,x1,y1,x2,y2,$warna)
• Parameter x1,y1 merupakan titik kiri atas dari
empat persegi panjang, sedangkan x2,y2
merupakan titik kanan bawahnya.
<?
Header("Content-Type:image/jpeg");
$img = ImageCreate(300,300);
$biru = ImageColorAllocate($img,0,0,255);
$merah = ImageColorAllocate($img,255,0,0);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($img,0,0,$putih);
ImageRectangle($img,0,0,200,200,$biru);
ImageJPEG($img);
?>
Fungsi ImagePolygon()
• 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]=x1, $titik[1]=y1, $titik[2]=x2, $titik[3]=x3, dan
seterusnya.
• Parameter jml_sudut adalah jumlah titik sudut dari
polygon yang akan digambar.
<?
Header("Content-Type:image/jpeg");
$img = ImageCreate(300,300);
$warna = ImageColorAllocate($img,157,25,12);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($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;
ImagePolygon($img,$titik,5,$warna);
ImageJPEG($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 ImageCreate
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 = ImageCreate(300,300);
$biru = ImageColorAllocate($img,0,0,255);
$merah = ImageColorAllocate($img,255,0,0);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($img,0,0,$putih);
ImageFilledRectangle($img,0,0,200,200,$biru);
ImageJPEG($img);
?>
Fungsi ImageString() dan
ImageStringUp()
• Kedua fungsi ini digunakan untuk menggambar sebuah
string. Perbedaannya adalah fungsi ImageString()
menggambar sebuah string dengan posisi horizontal,
sedangkan fungsi ImageStringUp() dengan posisi vertikal.
Sintaksnya adalah sebagai berikut:
ImageString($img,font,x,y,string,$warna)
ImageStringUp($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 = ImageCreate(300,300);
$biru = ImageColorAllocate($img,0,0,255);
$merah = ImageColorAllocate($img,255,0,0);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($img,0,0,$putih);
ImageString($img,5,30,30,"Belajar PHP",$biru);
ImageStringUp($img,5,150,150,"Mudah
lho",$merah);
ImageJPEG($img);
?>
Fungsi ImageFillToBorder()
• Fungsi ini akan memberi warna pada suatu area
sampai batas tertentu. Sintaksnya adalah sebagai
berikut:
ImageFillToBorder($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 = ImageCreate(300,300);
$hitam = ImageColorAllocate($img,0,0,0);
$biru = ImageColorAllocate($img,0,0,255);
$putih = ImageColorAllocate($img,255,255,255);
ImageFill($img,0,0,$biru);
ImageArc($img,150,150,250,175,0,360,$putih);
ImageFillToBorder($img,150,150,$putih,$hitam);
ImageJPEG($img);
?>
Fungsi ImageTypes()
• Fungsi ini digunakan untuk memeriksa tipe gambar apa saja yang
didukung oleh PHP pada server yang bersangkutan. Sintaksnya:
ImageTypes()
• 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 (ImageTypes() & IMG_JPG) {
echo "PHP mendukung format JPEG";
}
?>
Fungsi ImageSetPixel()
• Fungsi ini digunakan untuk menggambar
sebuah titik (pixel). Sintaksnya:
ImageSetPixel($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
session_start();
header("Content-Type: image/jpeg");
//fungsi untuk membuat gambar
$image=imagecreate(75, 40);
//menentukan warna background
ImageFill($image, 0, 0, imagecolorallocate($image, 0, 0,
225)); //biru
//menentukan warna text
$warnatext=imagecolorallocate($image, 255, 255, 255);
//putih
//mengenerate angka
$angka1=rand(0, 9);
$angka2=rand(0, 9);
$angka3=rand(0, 9);
$angka4=rand(0, 9);
$code=$angka1.$angka2.$angka3.$angka4;
//menyimpan kode dalam session
$_SESSION['captcha']=$code;
//menulis kode pada gambar
imagestring($image, 5, 18, 12, $code, $warnatext);
//output gambar
ImageJPEG($image, "", 90);
//membebaskan memori
imagedestroy($image);
?>
Simpan program di atas dengan nama captcha.php
Membuat Form Input Captcha
(Simpan skrip berikut dengan nama MainCaptcha)
<?php
//memulai session
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
Download