Tampilkan postingan dengan label PHP Advance. Tampilkan semua postingan
Tampilkan postingan dengan label PHP Advance. Tampilkan semua postingan
Upload Gambar Dengan Teknik Resize Resolution
Agung Sucipto
Selamat Malam Sahabat, kali ini masih sama dengan tutorial-tutorial sebelumnya, masih membahas tentang image processing pada PHP. "Upload Gambar dengan teknik Resize Resolution", langkah-langkah pada teknik ini sebagai berikut :
fungsi imagecreatefromjpeg berfungsi membuat salinan gambar dari file asli, fungsi imageSX berfungsi mengambil lebar gambar, fungsi imageSY mengambil tinggi gambar. setelah mendapatkan informasi asli dari sebuah gambar, langkah selanjutnya adalah melakukan perhitungan kompresi gambar dengan fungsi berikut :
variable $dst_width akan berisi sesuai dengan parameter yang diberikan saat pemanggilan fungsi, sedangkan variable $dst_height merupakan perhitungan proporsional dari ukuran asli terhadap ukuran yang dikopresi. Untuk mendapatkan ukuran tinggi yang sesuai dengan lebar yang ditentukan maka dilakukan perhitungan. Ukuran lebar yang di seting dibagi dengan ukuran asli gambar kemudian dibagi dengan tinggi asli gambar. maka didapatlah tinggi yang akan sesuai dengan lebar yang ditentukan, sehingga keluaran gambar tidak akan rusak, masih sama dengan proporsional aslinya, namun resolusi keluaran pasti akan berbeda.
lalu langkah berikutnya adalah membuat gambar baru dari salinan yang telah dibuat dengan lebar dan tinggi yang sudah di kompres sesuai keinginan dengan fungsi berikut :
setelah berhasil membuat gambar baru dengan resolusi yang baru, maka proses pembuatan gambar baru akan dihapus dari memori dan dihapus dari direktori menggunakan fungsi :
untuk menggunakan fungsi ini, tentunya menggunakan HTML untuk membuat form upload gambar sebagai berikut :
jangan pernah melupakan atribute enctype="multipart/form-data" saat ingin melakukan proses upload file pada sebuah form.
kemudian cara menjalankan fungsi tersebut sebagai berikut :
artinya program akan mengeksekui perintah ketika tombol submit diklik atau variable $_POST['upload'] telah ada pada memeory. lalu deklarasikanlah parameter-parameter yang akan diproses,
hasil befor after gambar hasil kompresi sebagai berikut :
Dari resolusi 3000px menjadi 400px. Happy Coding. Selamat malam, selamat menanti tutorial berikutnya :)
Download Code
- Upload Gambar Asli Dengan Resolusi Original
- Membuat Salinan Gambar dengan Costumize Resolution
- Menghapus gambar asli dari direktori
Oke langsung aja kita siapkan kebutuhan-kebutuhan. Disini hanya menggunakan sebuah file index.php dan sebuah folder "image"
Upload_Image/
---image/
---index.php
folder image digunakan untuk penyimpanan gambar setelah dilakukan proses upload.
file index.php sebagai berikut :
<?php
function UploadImageResize($new_name,$file,$dir,$width){
//direktori gambar
$vdir_upload = $dir;
$vfile_upload = $vdir_upload . $_FILES[''.$file.'']["name"];
//Simpan gambar dalam ukuran sebenarnya
move_uploaded_file($_FILES[''.$file.'']["tmp_name"], $dir.$_FILES[''.$file.'']["name"]);
//identitas file asli
$im_src = imagecreatefromjpeg($vfile_upload);
$src_width = imageSX($im_src);
$src_height = imageSY($im_src);
//Set ukuran gambar hasil perubahan
$dst_width = $width;
$dst_height = ($dst_width/$src_width)*$src_height;
//proses perubahan ukuran
$im = imagecreatetruecolor($dst_width,$dst_height);
imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);
//Simpan gambar
imagejpeg($im,$vdir_upload . $new_name,100);
//Hapus gambar di memori komputer
imagedestroy($im_src);
imagedestroy($im);
$remove_small = unlink("$vfile_upload");
}
?>
diatas terdapat sebuah fungsi dengan nama UploadImageResize($new_name,$file,$dir,$width) yang terdiri beberapa parameter berikut :- $new_name = adalah variable nama file baru dari sebuah gambar
- $file = adalah name dari input dengan type file
- $dir = adalah direktory penyimpanan gambar
- $width = adalah variable yang berfungsi mengatur ukuran kompresi gambar
dengan fungsi tersebut, program akan melakukan proses upload image, kemudian setelah berhasil diupload, program akan membaca dimensi asli dari gambar yang diupload dengan fungsi berikut
//identitas file asli $im_src = imagecreatefromjpeg($vfile_upload); $src_width = imageSX($im_src); $src_height = imageSY($im_src);
fungsi imagecreatefromjpeg berfungsi membuat salinan gambar dari file asli, fungsi imageSX berfungsi mengambil lebar gambar, fungsi imageSY mengambil tinggi gambar. setelah mendapatkan informasi asli dari sebuah gambar, langkah selanjutnya adalah melakukan perhitungan kompresi gambar dengan fungsi berikut :
//Set ukuran gambar hasil perubahan $dst_width = $width; $dst_height = ($dst_width/$src_width)*$src_height;
variable $dst_width akan berisi sesuai dengan parameter yang diberikan saat pemanggilan fungsi, sedangkan variable $dst_height merupakan perhitungan proporsional dari ukuran asli terhadap ukuran yang dikopresi. Untuk mendapatkan ukuran tinggi yang sesuai dengan lebar yang ditentukan maka dilakukan perhitungan. Ukuran lebar yang di seting dibagi dengan ukuran asli gambar kemudian dibagi dengan tinggi asli gambar. maka didapatlah tinggi yang akan sesuai dengan lebar yang ditentukan, sehingga keluaran gambar tidak akan rusak, masih sama dengan proporsional aslinya, namun resolusi keluaran pasti akan berbeda.
lalu langkah berikutnya adalah membuat gambar baru dari salinan yang telah dibuat dengan lebar dan tinggi yang sudah di kompres sesuai keinginan dengan fungsi berikut :
//proses perubahan ukuran $im = imagecreatetruecolor($dst_width,$dst_height); imagecopyresampled($im, $im_src, 0, 0, 0, 0, $dst_width, $dst_height, $src_width, $src_height);
//Simpan gambar imagejpeg($im,$vdir_upload . $new_name,100);
setelah berhasil membuat gambar baru dengan resolusi yang baru, maka proses pembuatan gambar baru akan dihapus dari memori dan dihapus dari direktori menggunakan fungsi :
//Hapus gambar di memori komputer
imagedestroy($im_src);
imagedestroy($im);
$remove_small = unlink("$vfile_upload");
untuk menggunakan fungsi ini, tentunya menggunakan HTML untuk membuat form upload gambar sebagai berikut :
<form action ="" method="POST" enctype="multipart/form-data"> <input type="file" name="foto" accept="image/JPEG"/> <input type="submit" name="upload" value="upload"/> </form>
jangan pernah melupakan atribute enctype="multipart/form-data" saat ingin melakukan proses upload file pada sebuah form.
kemudian cara menjalankan fungsi tersebut sebagai berikut :
if(isset($_POST['upload'])){
$new_name=time().'.jpg';
$file='foto'; //name pada inputan type file
$dir='image/';
$width=400;//satuan dalam pixel / px
UploadImageResize($new_name,$file,$dir,$width);
}
artinya program akan mengeksekui perintah ketika tombol submit diklik atau variable $_POST['upload'] telah ada pada memeory. lalu deklarasikanlah parameter-parameter yang akan diproses,
hasil befor after gambar hasil kompresi sebagai berikut :
Dari resolusi 3000px menjadi 400px. Happy Coding. Selamat malam, selamat menanti tutorial berikutnya :)
Download Code
Convert Foto Resolusi Tinggi dan Ukuran Besar (MB) Tanpa Mengurangi Ukuran Resolusi (PX) dengan PHP
Agung Sucipto
Selamat Berjumpa Kembali sahabat , sudah lama tidak post tutorial karena baru tau beberapa hari yang lalu kalo artikel sebelumnya udah di publish sama om admin. Tutorial kali ini masih berhubungan dengan pengelolaan image pada php, sesuai judul posting ini, akan menjelaskan bagaimana melakukan konversi ukuran gambar / foto yang berukuran besar (misal:5mb, resolusi 5000px X 2000px) menjadi ukuran yang lebih kecil tanpa mengurangi resolusi pada gambar dengan teknik reduce quality image. Oke Langsung saja.
Pada Tutorial kali ini memerlukan 2 buah file php dan sebuah folder
File Pertama index.php sebagai code untuk menampilkan form upload foto / gambar
File Kedua proses.php sebagai code pemrosesan data kiriman dari index.php
Folder Upload Digunakan untuk menyimpan Foto /Gambar yang diupload.
Langkah Pertama
index.php
Kode diatas merupakan form yang akan digunakan sebagai interface untuk mengupload foto / gambar
action="proses.php" Merupakan alamat pengiriman data form, method="POST" Merupakan metode pengiriman data, enctype="multipart/form-data" ini berfungsi untuk pengiriman data dengan type FILE, jika ingin mengupload dengan type FILE, wajib mencantumkan ini. Pada form ini akan dikirimkan 2 data, yaitu: gambar/ foto dan data angka yang merupakan % quality yang dikehendai pengguna.
proses.php
tahap Pertama
variable $direktori berisi direktori penyimpanan foto / gambar yang akan diupload, akhiri nama folder dengan tanda "/". variable $name berisi string yang menandakan name pada inputan form sesuai dengan file index.php
variable $namaBaru berisi nama baru file yang dibuat scara random sesuai tanggal dan waktu sekarang, variable $quality berisi inputan data dari pengguna pada form dari file index.php
tambahkan script berikut pada file proses.php
Function UploadCompress() memiliki 4 parameter :
$dir='upload/'; lalu file yang dipilih adalah image.jpg maka keluaran variable $vfile_upload adalah 'upload/image.jpg';
temporary merupakan penyimpanan sementara pada temp memory beserta nama file,directory+file berisi folder dan nama file yang telah kita konfigurasi. pada tahap ini gambar telah berhasil diupload ke sistem dengan ukuran dan resolusi sebenarnya.
berikut adalah screen shoot yang menakjubkan
File gambar sebelum dilakukan konversi
Download Code
Pada Tutorial kali ini memerlukan 2 buah file php dan sebuah folder
File Pertama index.php sebagai code untuk menampilkan form upload foto / gambar
File Kedua proses.php sebagai code pemrosesan data kiriman dari index.php
Folder Upload Digunakan untuk menyimpan Foto /Gambar yang diupload.
Langkah Pertama
index.php
<form action="proses.php" method="POST" enctype="multipart/form-data"> <input type="file" name="foto"/> <input type="number" min="1" max="100" value="50" name="quality"/> <input type="submit" name="proses" value="Proses"/> </form>Penjelasan:
Kode diatas merupakan form yang akan digunakan sebagai interface untuk mengupload foto / gambar
action="proses.php" Merupakan alamat pengiriman data form, method="POST" Merupakan metode pengiriman data, enctype="multipart/form-data" ini berfungsi untuk pengiriman data dengan type FILE, jika ingin mengupload dengan type FILE, wajib mencantumkan ini. Pada form ini akan dikirimkan 2 data, yaitu: gambar/ foto dan data angka yang merupakan % quality yang dikehendai pengguna.
proses.php
tahap Pertama
<?php
if($_POST['proses']){
$file=$_FILES['foto']['name'];
if(!empty($file)){
$direktori="upload/"; //tempat upload foto
$name='foto'; //name pada input type file
$namaBaru='upload'.date('Y-m-d H-i-s'); //name pada input type file
$quality=$_POST['quality']; //konversi kualitas gambar dalam satuan %
//jalankan fungsi
if(UploadCompress($namaBaru,$name,$direktori,$quality)){
echo'sukses';
}else{
echo'gagal';
}
}
}
?>
Penjelasan:if($_POST['proses']){...}
kode diatas memastikan agar tidak diperbolehkan akses langsung ke file proses.php, script ini berjalan jika mendapat kiriman data dari form dengan method POST dan nama datanya adalah 'proses'$file=$_FILES['foto']['name'];Kode diatas untuk mendapatkan informasi nama file yang telah dipilih pengguna melalui form, dan kode ini digunakan untuk memastikan apakah penggunan telah memilih file atau belum saat melakukan proses pengiriman data
if(!empty($file)){..}
Logika diatas untuk memvalidasi apakah variable $file itu kosong atau tidak, jika pengguna memilih file pada form maka variable ini seharusnya tidak kosong,jika tidak dipilih variable ini akan kosong. Jika variable tidak(!) kosong(empty) maka lakukan proses logika.$direktori="upload/"; //tempat upload foto
$name='foto'; //name pada input type file
$namaBaru='upload'.date('Y-m-d H-i-s'); //name pada input type file
$quality=$_POST['quality']; //konversi kualitas gambar dalam satuan %
Diatas terdapat 4 variable yang wajib di configurasi pada tahap ini, karena pada proses konversi gambar ini akan menggunakan function.variable $direktori berisi direktori penyimpanan foto / gambar yang akan diupload, akhiri nama folder dengan tanda "/". variable $name berisi string yang menandakan name pada inputan form sesuai dengan file index.php
<input type="file" name="foto"/>nah script ini yang dimaksud.
variable $namaBaru berisi nama baru file yang dibuat scara random sesuai tanggal dan waktu sekarang, variable $quality berisi inputan data dari pengguna pada form dari file index.php
//jalankan fungsi
if(UploadCompress($namaBaru,$name,$direktori,$quality)){
echo'sukses';
}else{
echo'gagal';
}
Logika diatas menjalankan fungsi UploadCompress($namaBaru,$name,$direktori,$quality), jika fungsi mengembalikannilai true maka cetak sukses, jika salah cetak gagal, Sampai disini proses belum akan berjalan, karena pasti akan terjadi fatal error, karena tidak adanya fungsi UploadCompress(). Baiklah Kita akan ke tahap selanjutnyatambahkan script berikut pada file proses.php
<?php
function UploadCompress($new_name,$file,$dir,$quality){
//direktori gambar
$vdir_upload = $dir;
$vfile_upload = $vdir_upload . $_FILES[''.$file.'']["name"];
//Simpan gambar dalam ukuran sebenarnya
move_uploaded_file($_FILES[''.$file.'']["tmp_name"], $dir.$_FILES[''.$file.'']["name"]);
$source_url=$dir.$_FILES[''.$file.'']["name"];
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg'){
$image = imagecreatefromjpeg($source_url);
$ext='.jpg';
}
elseif($info['mime'] == 'image/gif'){
$image = imagecreatefromgif($source_url);
$ext='.gif';
}elseif($info['mime'] == 'image/png'){
$image = imagecreatefrompng($source_url);
$ext='.png';
}
if(imagejpeg($image, $dir.$new_name.$ext, $quality)){
unlink($source_url);
return true;
}else{
unlink($source_url);
return false;
}
}
?>
Penjelasan:Function UploadCompress() memiliki 4 parameter :
- $new_name merupakan nama baru untuk gambar / foto yang akan diupload, dan ini tidak boleh kosong
- $file merupakan nama inputan pada type file form yang dikirim untuk diproses
- $dir merupakan direktori penyimpanan atau pemrosesan gambar
- $quality merupakan persentase qualitas yang akan di konversi pada gambar
//direktori gambar $vdir_upload = $dir; $vfile_upload = $vdir_upload . $_FILES[''.$file.'']["name"];variable $vdir_upload berisi dengan direktori yang akan digunakan oleh sistem, variable $vfile_upload berisi direktori dan nama file asli yang akan diupload. misalnya
$dir='upload/'; lalu file yang dipilih adalah image.jpg maka keluaran variable $vfile_upload adalah 'upload/image.jpg';
//Simpan gambar dalam ukuran sebenarnya move_uploaded_file($_FILES[''.$file.'']["tmp_name"], $dir.$_FILES[''.$file.'']["name"]);nah sebelum melakukan konversi gambar, gambar tersebut harus diupload dulu pada sistem dengan menggunakan fungsi move_uploaded_file(temporary,directory+file)
temporary merupakan penyimpanan sementara pada temp memory beserta nama file,directory+file berisi folder dan nama file yang telah kita konfigurasi. pada tahap ini gambar telah berhasil diupload ke sistem dengan ukuran dan resolusi sebenarnya.
$source_url=$dir.$_FILES[''.$file.'']["name"]; $info = getimagesize($source_url);variable $source_url berisi folder dan nama file yang baru saja kita upload, dan variable $info berisi data array dari fungsi getimagesize($source_url) fungsi ini memberikan informasi selengkap-lengkapnya tentang gambar yang baru saja kita upload. fungsi ini bertujuan untuk membaca tipe gambar yang akan di konversi.
if ($info['mime'] == 'image/jpeg'){
$image = imagecreatefromjpeg($source_url);
$ext='.jpg';
}
elseif($info['mime'] == 'image/gif'){
$image = imagecreatefromgif($source_url);
$ext='.gif';
}elseif($info['mime'] == 'image/png'){
$image = imagecreatefrompng($source_url);
$ext='.png';
}
dari variable $info terdapat sebuah nama array 'mime' yang berisi type atau jenis gambar yang baru saja kita upload, disini dibatasi untuk tipe jpg, png, dan gif, untuk tiap pembuatan gambar dari php menjalankan fungsi imageX yang berbeda sesuai dengan tipe gambar, nah variable $image berisi perintah untuk membuat sebuah gambar baru atau kopian dari gambar yang telah kita upload tadi, dan variable $ext berisi extension untuk menghubungkan nama baru gambar dengan extension agar menjadi sebuah file baru yang sempurna. if(imagejpeg($image, $dir.$new_name.$ext, $quality)){
unlink($source_url);
return true;
}else{
unlink($source_url);
return false;
}
setelah membuat kopian dari gambar yang baru saja kita upload, logika ini menjalankan untuk membuat file tersebut kedalam direktori, nama file baru dan kulitas gambar yang telah kita konfigurasi, fungsi ini mengembalikan true jika berhasil membuat gambar yang telah di konversi, jika gagal akan mengembalikan nilai false,unlink($source_url);fungsi diatas digunakan untuk menghapus gambar asli yang kita upload, tujuannya agar tidak terjadi penumpukan file yang asli pada direktori, sehingga yang ada hanyalah gambar yang telah di konversi
berikut adalah screen shoot yang menakjubkan
File gambar sebelum dilakukan konversi
Download Code
Membaca Gambar dari Sebuah Isi Artikel Menggunakan PregMatch
Agung Sucipto
Hallo Sahabat, Ini Tutorial Perdana saya. Saya akan sedikit mengangkat sebuah masalah klasik, khususnya untuk para developer website yang membuat web berita tutorial dan sejenisnya yang selalu menggunakan thumbnail gambar dari berita tersebut. Seperti pada blogspot, ketika isi dari sebuah berita ada gambar, maka gambar tersebut akan menjadi thumbnail dari list berita utama. Pasti Sahabat sekalian bertanya-tanya bagaimana bisa mengambil gambar dari isi sebuah artikel.
Sebelum membuat sebuah fungsi yang dapat mendeteksi keberadaan gambar dari sebuah artikel, baiknya kita mereview kembali fungsi-fungsi yang akan kita gunakan.
dari fungsi diatas mengandung 3 paramete yaitu:
pada baris kode diatas saya membuat 3 paramete, yang pertama untuk Pola, saya mengasumsikan jika sebuah situs berita menggunakan Rich Text Editor Seperti TinyMce dan Sebagainya, pasti yang akan disimpan dalam database adalah tag-tag html, untuk itu saya berkesimpulan untuk gambar pasti akan ada sebuah tag IMG sebagai berikut :
untuk itu pola diatas disesuaikan untuk pencocokan string dengan model src="(apapun isi dari src)".
$text itu sebagai variable inputan, $cocok itu sebagai variable hasil.
Setelah membuat pola dan pencocokan, langkah berikutnya adalah melakukan pembersihan string karena jika kita mengambil pola src="" bisa jadi karekter setelah itu juga akan terambil, untuk itu keluaran harus diperiksa kembali.
hasil keluaran yang berisi dari fungsi pregmatch adalah array dengan index 1, untuk itu string yang akan di proses menggunakan fungsi explode berdasarkan tanda ", untuk mengambil URL dari image terssebut, kemudian dilakukan pembuangan tang img "/> dan sejenisnya sehingga hasil keluaran yang diinginkan adalah URL dari image tersebut.
Skrip Lengkapnya sebagai berikut :
untuk menjalankan fungsi tersebut hanya sebagai beikut :
maka hasil keluarannya adalah
Mudah bukan???Ketemu Lagi Di Postingan Berikutnya Salam Programmer
Download Code
Sebelum membuat sebuah fungsi yang dapat mendeteksi keberadaan gambar dari sebuah artikel, baiknya kita mereview kembali fungsi-fungsi yang akan kita gunakan.
preg_match(POLA,SUMBER,OUTPUT);
- Pola : Sebagai Pola Untuk Pencocokan String
- Sumber : String yang akan di cocokan terhadap pola
- Output : Keluaran / Hasil Pencocokan Pola
lalu langkah berikutnya membuat pola untuk mendeteksi gambar pada sebuah artikel :
preg_match("/src=\"(.+)\"/",$text,$cocok);
<img src="lokasi_gambar" ... />dengan pola gambar yang berbeda-beda maka saya mengambil sebuah pola yang umum yaitu src="", karena pada tag html untuk bagian body tidak ada yang lain selain gambar menggunakan atribut tersebut
untuk itu pola diatas disesuaikan untuk pencocokan string dengan model src="(apapun isi dari src)".
$text itu sebagai variable inputan, $cocok itu sebagai variable hasil.
Setelah membuat pola dan pencocokan, langkah berikutnya adalah melakukan pembersihan string karena jika kita mengambil pola src="" bisa jadi karekter setelah itu juga akan terambil, untuk itu keluaran harus diperiksa kembali.
$patern= explode("\"",$cocok[1]);
$img = str_replace("\"/>","",$patern[0]);
$img = str_replace("../","",$img);
$img = str_replace("/>","",$img);
Skrip Lengkapnya sebagai berikut :
function cek_img_tag($text)
{ //membuat auto thumbnails
preg_match("/src=\"(.+)\"/",$text,$cocok);
$patern= explode("\"",$cocok[1]);
$img = str_replace("\"/>","",$patern[0]);
$img = str_replace("../","",$img);
$img = str_replace("/>","",$img);
if($img=="") { $img=""; }
else
{ $new='<img src="'.$img.'"/>'; $img=$new; }
return $img; }
cek_img_tag('tutorial membuat thimbnail berita dengan php <img src="www.jagocoding.com/image.jpg"/>sangat menyenangkan dan mudah dimengerti');
maka hasil keluarannya adalah
<img src="www.jagocoding.com/image.jpg"/>.
Mudah bukan???Ketemu Lagi Di Postingan Berikutnya Salam Programmer
Download Code
Langganan:
Postingan
(
Atom
)

