Kali ini kita akan mencoba membuat kalender hijriah berformat PNG dengan fungsi-fungsi yang telah ada di PHP. Untuk itu kita butuh beberapa persiapan dan perlengkapan yang akan diperlukan nanti.
PERLENGKAPAN:
1. Satu set computer lengkap dengan webserver-nya. Anda bisa gunakan XAMPP.
2. Satu file font untuk fontasinya, saya menggunakan Antropos Freefont (antrf.ttf).
3. Gambar/image dengan desain kalender dengan format PNG.
1. Satu set computer lengkap dengan webserver-nya. Anda bisa gunakan XAMPP.
2. Satu file font untuk fontasinya, saya menggunakan Antropos Freefont (antrf.ttf).
3. Gambar/image dengan desain kalender dengan format PNG.
PERSIAPAN:
1. Beberapa cemilan penunda lapar.
2. Sebungkus rokok diganti saja dengan secangkir gahwa (hot coffe).
3. Pastikan bahwa Anda sudah mengenal dasar-dasar PHP.
1. Beberapa cemilan penunda lapar.
2. Sebungkus rokok diganti saja dengan secangkir gahwa (hot coffe).
3. Pastikan bahwa Anda sudah mengenal dasar-dasar PHP.
Langsung aja gan…
Contoh background kalendernya:
Pertama-tama jalankan webservernya. Bagi yang belum ngerti jalanin webserver, silahkan cari tutorialnya di google.
Kemudian buat file index.php terlebih dahulu dan masukkan script dibawah ini…
<?php
// ===================================================
//
// THIS SOURCE CODE IS FREE FOR USE
// IN THE NAME OF ALLAH SUBHANAHU WA TA'ALA
//
// Author: Sepyan Purnama k(shinjikoo@gmail.com)
// ===================================================
// Konversi masehi ke hijriyah
$tanggal
=
getdate
();
$wday
=
$tanggal
[wday];
$hr
=
$tanggal
[mday];
$bln
=
$tanggal
[mon];
$thn
=
$tanggal
[year];
if
((
$thn
> 1582) || ((
$thn
== 1582) && (
$bln
> 10)) || ((
$thn
== 1582) && (
$bln
== 10) && (
$hr
> 14))) {
$zjd
=(int)((1461 * (
$thn
+ 4800 + (int)((
$bln
- 14) / 12))) / 4) + (int)((367 * (
$bln
- 2 - 12 * ((int)((
$bln
- 14) / 12)))) / 12) - (int)((3 *
(int)(((
$thn
+ 4900 + (int)((
$bln
- 14) / 12)) / 100))) / 4) +
$hr
- 32075;
}
else
{
$zjd
= 367 *
$thn
- (int)((7 * (
$thn
+ 5001 + (int)((
$bln
- 9) / 7))) / 4) + (int)((275 *
$bln
) / 9) +
$hr
+ 1729777;
}
$zl
=
$zjd
-1948440+10632;
$zn
=(int)((
$zl
-1)/10631);
$zl
=
$zl
-10631*
$zn
+354;
$zj
=((int)((10985-
$zl
)/5316))*((int)((50*
$zl
)/17719))+((int)(
$zl
/5670))*((int)((43*
$zl
)/15238));
$zl
=
$zl
-((int)((30-
$zj
)/15))*((int)((17719*
$zj
)/50))-((int)(
$zj
/16))*((int)((15238*
$zj
)/43))+29;
$bln
=(int)((24*
$zl
)/709);
$hari
=
$zl
-(int)((709*
$bln
)/24);
$tahun
=30*
$zn
+
$zj
-30;
if
(
$bln
==1){
$bulan
=
"Muharram"
;}
if
(
$bln
==2){
$bulan
=
"Safar"
;}
if
(
$bln
==3){
$bulan
=
"Rabiul Awal"
;}
if
(
$bln
==4){
$bulan
=
"Rabiul Akhir"
;}
if
(
$bln
==5){
$bulan
=
"Jamadil Awal"
;}
if
(
$bln
==6){
$bulan
=
"Jamadil Akhir"
;}
if
(
$bln
==7){
$bulan
=
"Rejab"
;}
if
(
$bln
==8){
$bulan
=
"Syaaban"
;}
if
(
$bln
==9){
$bulan
=
"Ramadhan"
;}
if
(
$bln
==10){
$bulan
=
"Syawal"
;}
if
(
$bln
==11){
$bulan
=
"Zulkaedah"
;}
if
(
$bln
==12){
$bulan
=
"Zulhijjah"
;}
if
(
$wday
==0) {
$namahari
=
"A H A D"
; }
if
(
$wday
==1) {
$namahari
=
"I T S N A I N"
; }
if
(
$wday
==2) {
$namahari
=
"T S A L A T S A"
; }
if
(
$wday
==3) {
$namahari
=
"A R B I ' A N"
; }
if
(
$wday
==4) {
$namahari
=
"K H A M I S"
; }
if
(
$wday
==5) {
$namahari
=
"J U M U ' A H"
; }
if
(
$wday
==6) {
$namahari
=
"S A B T"
; }
// Pembuatan output gambar berformat PNG
header(
"Content-Type: image/PNG"
);
$img
= imagecreatefromPNG(
"bghijri.png"
);
$fontfile
=
"./antrf.TTF"
;
$putih
= imagecolorallocate(
$img
, 255, 255, 255);
imageTTFText(
$img
, 10, 0, 5, 45,
$putih
,
$fontfile
,
$namahari
);
$hitam
= imagecolorallocate(
$img
, 0, 0, 0);
$batas
= imageTTFbbox(40, 0,
$fontfile
,
$hari
);
$x
= imageSX(
$img
)/2 - (
$batas
[0] +
$batas
[2] +
$batas
[4] +
$batas
[6]) / 4;
imageTTFText(
$img
, 40, 0,
$x
, 100,
$hitam
,
$fontfile
,
$hari
);
$batas
= imageTTFbbox(10, 0,
$fontfile
,
$bulan
);
$x
= imageSX(
$img
)/2 - (
$batas
[0] +
$batas
[2] +
$batas
[4] +
$batas
[6]) / 4;
imageTTFText(
$img
, 10, 0,
$x
, 118,
$hitam
,
$fontfile
,
$bulan
);
$tahun
=
$tahun
.
" H"
;
$batas
= imageTTFbbox(10, 0,
$fontfile
,
$tahun
);
$x
= imageSX(
$img
)/2 - (
$batas
[0] +
$batas
[2] +
$batas
[4] +
$batas
[6]) / 4;
imageTTFText(
$img
, 10, 0,
$x
, 133,
$hitam
,
$fontfile
,
$tahun
);
imagePNG(
$img
);
imagedestroy(
$img
);
?>
Code diatas akan menghasilkan gambar berformat PNG. Jika Anda ingin merubah formatnya, Anda bisa mengganti sebagian code diatas. Seperti contoh “Content-Type: image/PNG” diganti ke format GIF menjadi “Content-Type: image/GIF”, atau ke format JPG menjadi “Content-Type: image/JPEG”.
Dan pastikan file gambar untuk background dan fontasinya udah Anda siapkan dalam satu folder dengan file index.
Jalankan, kemudian lihat hasilnya…
Sumber:3tnic.wordpress.com
Dan pastikan file gambar untuk background dan fontasinya udah Anda siapkan dalam satu folder dengan file index.
Jalankan, kemudian lihat hasilnya…
Sumber:3tnic.wordpress.com
0 komentar:
Posting Komentar