PHP – Membuat Shape (bangun ruang dan mewarnainya)

Ditutorial ini, bangun ruang yang akan coba kita buat ada 2, yaitu kotak, dan lingkaran.
Untuk membuat kotak dalam PHP ada fungsi khusus bernama imagerectangle();

<?php
header("Content-type:image/jpeg");
$gb= imagecreate(500,500);
$bg_color= imagecolorallocate($gb,255,255,255);
$border= imagecolorallocate($gb,0,0,0);
$text_color= imagecolorallocate($gb,255,0,0);
$text = "100x100";
imagestring($gb,14,30,70,$text,$text_color);
imagerectangle($gb,20,50,120,150,$border);
imagejpeg($gb);
imagedestroy($gb);
?>

Preview untuk kode di atas adalah :

Untuk mewarnai kotak, ada fungsi khusus yang juga telah diciptakan dalam PHP yaitu : imagefilledrectangle();

 
<?php
header("Content-type:image/jpeg");
$gb= imagecreate(500,500);
$bg_color= imagecolorallocate($gb,255,255,255);
$warna1= imagecolorallocate($gb,145,2,154);
$warna2= imagecolorallocate($gb,78,87,0);
$border= imagecolorallocate($gb,0,0,0);
imagerectangle($gb,20,50,120,150,$border);
imagefilledrectangle($gb,20,50,120,100,$warna1);
imagefilledrectangle($gb,20,100,120,150,$warna2);
imagejpeg($gb);
imagedestroy($gb);
?>

Preview untuk kode di atas adalah :

Untuk menciptakan objek lingkaran, digunakan fungsi imageellipse();

 
<?php
header("Content-type:image/jpeg");
$bg= imagecreate(500,500);
imagecolorallocate($bg,255,255,255);
$line= imagecolorallocate($bg,0,0,0);
$color = imagecolorallocate($bg,201,5,33);
imageellipse($bg,50,50,100,100,$line);
imagefilledellipse($bg,50,50,100,100,$color);
imagejpeg($bg);
imagedestroy($bg);
?>

Preview Untuk kode di atas adalah :

PHP – Membuat garis lurus dan garis putus

Fungsi dasar yang digunakan untuk membuat garis lurus biasa adalah imageline();

<?php
header("Content-type:image/jpeg");
$gb= imagecreate(500,500);
$bg_color= imagecolorallocate($gb,0,0,0);
$line_color= imagecolorallocate($gb,255,255,255);
//garis_hoizontal
$width= 400;//dalam pixel
$x_mulai=20;
$y_mulai=50;
$x_akhir= $width+$x_mulai;
imageline($gb,$x_mulai,$y_mulai,$x_akhir,$y_mulai,$line_color);
//garis vertikal
$y_akhir=$width+$y_mulai;
imageline($gb,$x_mulai,$y_mulai,$x_mulai,$y_akhir,$line_color);
//garis diagonal
imageline($gb,$x_mulai,$y_mulai,$x_akhir,$y_akhir,$line_color);
imagejpeg($gb);
imagedestroy($gb);
?>

Preview kode diatas adalah

Untuk garis putus-putus, fungsi umum yang telah ada dalam PHP adalah imagedashedline(); tetapi fungsi ini kurang sempurna karena tidak dapat membuat garis putus secara horisontal dan diagonal, hanya dapat membuat garis vertikal saja. Maka dari kita perlu membuat fungsi baru untuk menciptakan garis putus-putus sebagai berikut :

<?php
function garisPutus($gb,$x1,$y1,$x2,$y2,$fg,$bg){
	$string= array($fg,$fg,$fg,$fg,$bg,$bg,$bg,$bg);
	imagesetstyle($gb,$string);
	imageline($gb,$x1,$y1,$x2,$y2,IMG_COLOR_STYLED);
}
header("Content-type:image/jpeg");
$gb= imagecreate(500,500);
$bg_color= imagecolorallocate($gb,0,0,0);
$line_color= imagecolorallocate($gb,255,255,255);
//garis_horisontal
garisPutus($gb,20,50,320,50,$line_color,$bg_color);
//garis_vertikal
garisPutus($gb,20,50,20,320,$line_color,$bg_color);
//garis_diagonal
garisPutus($gb,20,50,320,320,$line_color,$bg_color);
imagejpeg($gb);
imagedestroy($gb);
?>

Preview dari kode di atas adalah :

PHP – Citra text dengan pengaturan koordinat

Untuk membuat citra text dengan pengaturan koordinat yang perlu anda lakukan hanya merubah parameter ke tiga pada fungsi imagettftext();

<?php
header("Content-type:image/jpeg");
$bg= imagecreate(500,200) or die ("tidak ada dukungan pustaka GD!");
$alokasi_bg_color=imagecolorallocate($bg,255,255,255);//warna hitam
$alokasi_text_color=imagecolorallocate($bg,0,0,0);//warna putih
$cetak= "koordinat 45 derajat";
$huruf="font/contohfont.ttf";
/* file font berada pada direktori font, dgn nm contohfont */
imagettftext($bg,18,45,15,150,$alokasi_text_color,$huruf,$cetak);
/* 45 menandakan derajat, 15, titik x, 100 titik y.*/
imagejpeg($bg);
imagedestroy($bg);
?>

Hasil preview dari kode di atas adalah :

Jika anda kesulitan memahami ini silakan baca dulu
tutorial sebelumnya : Membuat text dengan format font

PHP – Membuat citra grafis text dengan format font

Pada tutorial kedua ini, untuk kategori rekayasa grafis dengan PHP, kita akan mencoba membuat citra(gambar) yang berelement text dilengkapi dengan format font.
*(nb) Sebelumnya silakan copy paste dahulu jenis font yang anda inginkan kedalam direktori kerja anda. Misalkan , file keja anda “latihan2.php” berada di folder PHP, maka copy-pastekan dulu file font yang anda inginkan juga di folder PHP. Namun dalam tutorial ini saya meletakkan file font pada folder “font”, artinya, anda buat folder baru bernama “font”, dan paste-kan file font anda kedalamnya.

Source codenya adalah :

<?php
header("Content-type:image/jpeg");
$bg= imagecreate(300,50) or die ("tidak ada dukungan pustaka GD!");
$alokasi_bg_color=imagecolorallocate($bg,255,255,255);//warna putih
$alokasi_text_color=imagecolorallocate($bg,0,0,0);//warna hitam
$cetak= "belajar grafika php";
$huruf="font/contohfont.ttf";
/* file font berada pada direktori font, dgn nm contohfont */
imagettftext($bg,18,0,5,15,$alokasi_text_color,$huruf,$cetak);
imagejpeg($bg);
imagedestroy($bg);
?>

*(penjelasan) file di atas akan menciptakan sebuah gambar berformat JPEG, karena headernya dibuat JPEG. Fungsi imagecreate(), digunakan untuk membuat gambar awal, pewarnaan gambar awal diambil dari pengalokasian warna yang pertama, di sini alokasi pertamanya adalah $alokasi_bg_color=imagecolorallocate($bg,255,255,255); menghasilkan warna putih. Berbeda dengan membuat citra grafis yang sebelumnya, di sini fungsi yang digunakan untuk mencetak text bukan lagi imagestring() tetapi imagettftext().

Fungsi imagettftext(); memiliki 8 elemen, yaitu, (*source, besar font, posisi dlm derajat, posisi_x, posisi_y, warna, jenis font, string yang akan dicetak).

Preview dari kode di atas akan muncul seperti ini :

Menciptakan citra grafis dengan PHP (pemula-tahap I)

Hemm,, lama sekali saya tak menyentuh PHP gara-gara *rahasia* hehehe. Tapi akhirnya kangen juga. Saya tertarik sama salah satu jenis bahasa pemrograman ini lagi setelah ‘nemu’ judul buku yang lumayan bagus di perpus kampus saya. Yaitu rekayasa grafis dengan PHP. Mengingat harga buku IT mahal, saya tau kok kebanyakan orang (termasuk saya) harus mikir dulu kalo mau beli buku IT, karena mahal tentunya. Di blog ini saya akan coba menjabarkan dengan kalimat lain apa yang saya dapat dari buku itu. Agar tidak dibilang plagiat :D

Pengecekan terhadap library ‘gd_info’
Sebelum melakukan pengkodingan untuk pengolahan gambar dengan script, pertama-tama kita harus memastikan dahulu apakah fungsi-fungsi manipulasi tersebut dapat dipakai atau tidak atau tersedia dalam daftar fungsi dalam PHP atau tidak. Karena jika fungsi yang nanti kita gunakan ternyata belum ter-include dalam PHP, maka apa yang kita kerjakan nanti akan sia-sia.
Untuk mengetahui ada tidaknya fungsi-fungsi pendukung manipulasi gambar tersebut, lakukan pengecekan dengan script berikut:

if(function_exists('gd_info')==true){
   echo "Library tersedia";}
else { echo "Belum terinstal";}

Memahami tipe file gambar
Pada pengolahan dan rekayasa gambar menggunakan script PHP, tahap selanjutnya yang perlu diperhatikan adalah penulisan header image. Header ini berfungsi untuk memberikan informasi kepada sistem tentang jenis file yang akan diproses sistem web browser. Header image ini dibuat pertama kali sebelum melakukan proses-proses pengolahan gambar selanjutnya. Tipe-tipe file yang umum ditampilkan pada web diantaranya JPEG, PNG, dan GIF.

Berikut adalah cara untuk membuat header image berdasarkan tipe masing-masing.

- File JPEG : header(“Content-Type:image/jpeg”)
- File PNG : header(“Content-Type:image/png”)
- File GIF : header(“Content-Type:image/gif”)

Membuat grafis dengan karakter

<?php
header("content-Type:image/gif");
/*herder ini bermahsud bahwa citra yg diciptakan berekstensi gif*/
$gm= imagecreate(500,50);
/*fungsi imagecreate untuk membuat resolusi gambar, element lebarxpanjang*/
$bgc = imagecolorallocate($gm,255,255,255);
/*$bgc disini adalah variabel untuk menyimpan warna background*/
$text = imagecolorallocate($gm,0,0,0);
/* sedang $text adalah variabel untuk menyimpan warna teks*/
$data = "Belajar rekayasa grafis.";
/* $data adalah teks yang akan dibuat gambar*/
imagestring($gm,12,5,10,$data,$text);
imagegif($gm);
imagedestroy($gm);
/* fungsi imagedestroy ini diperlukan untuk menghapus alokasi memory yang dipakai untuk menciptakan citra tersebut*/
?>