Skip to content

zonblade/image-processor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ImPro (Image Processor)

intinya sih mempermudah pengolahan gambar
follow instagram @zonblade untuk mengetahui update codingan terbaruku.


newest change :

{
   "change":true,
   "listchange":[
      {
         "message":"memperbaiki namespace, nambah example",
         "status":"perbaikan namespace",
         "newrelease":"Sub Release Rev 5",
         "update_date":"29-Aug-2021"
      }
   ]
}

daftar isi :


image manipulator usage

Feature Penjelasan Depedensi
\ImPro\Processor\compress() mengkompress gambar dan me-resize gambar secara responsive Imagick
\ImPro\Processor\watermark() menempelkan watermark kepada foto/gambar yang diinginkan Imagick

image placement usage

$impro = new \ImPro\Image\placer($working_dir)
Feature Penjelasan Depedensi
$impro->post() menaruh gambar secara langsung dari request form secara post -
$impro->base64() menaruh gambar secara langsung bisa melalui AJAX/FETCH/AXIOS dan lainnya -

Cara Installasi

kloning git ini, atau download manual.

cd /folder/project/mu
git clone https://github.com/zonblade/image-processor.git

setelah itu bisa di masukan ke Autoload kalian, maupun require langsung. Cara ini terserah kalian.
cara 1 :

require_once __DIR__.'/path/to/plugin/image-processor.php';
use \ImPro as impro;

cara 2 (menggunakan secara eksplisit) :

require_once __DIR__.'/path/to/plugin/image-processor.php';
/* langsung dengan \ImPro */

docs ini akan menggunakan cara eksplisit (cara 2)


Menggunakan ImagePlacer

dasar-dasar yang harus diketahui

require_once __DIR__.'/path/to/plugin/image-processor.php';
$working_dir = '/path/to/image/folder/';
$imPlacer = new \ImPro\Image\placer($working_dir);
Syntax Penjelasan
$working_dir direktori dimana gambar mu akan ditaruh

imPlacer post

usage Penjelasan
fetch input hanya untuk form input

lalu, untuk menaruh gambar dengan FORM dan method POST seperti dibawah ini

<form action="." method="POST">
    <input type="file" name="nama_input_mu">
    <input type="submit" value="submit">
</form>

penjelasan kode php

$result = $imPlacer->post(
    $input_name,        /* string/false/bool */
    $filename,          /* string/false/bool -1 */
    $file_extension,    /* string/false/bool -1 */
    $allowed_extension, /* array/false/bool -1 */
    $upload_limit,      /* float/false/bool -1 */
    $replace_file,      /* true/false/bool -1 */
);
Syntax Penjelasan
$input_name nama input yang didapat dari name="nama_input_mu"
$filename nama file custom yang ingin ditulis, jika nama dari foto tersebut ingin di ganti namanya.
$file_extension ekstensi file custom misal jika ingin semua file yang diupload adalah png maka ditulis png
$allowed_extension jika file_extension bukan false syntax ini wajib false, jika ingin mengaktifkan fitur ini wajib untuk mengisi $file_extension menjadi false
$allowed_extension adalah array() contohnya array('png','jpeg','jpg'), berarti yang diperbolehkan hanya png/jpeg/jpg saja, selain itu akan return success=false
$upload_limit limit ukuran file gambar tersebut, dihitung dalam byte
$replace_file mengizinkan/tidak untuk me-replace file yang sudah ada, true jika mengizinkan replace.

syntax dapat ditiadakan jika tidak memiliki lanjutan,
contoh, aku hanya akan menggunakan input name saja, jadi:

$result = $imPlacer->post('nama_input_mu'); /* sah */

namun jika ingin menggunakan | tidak | menggunakan , maka bagian yang tidak harus ditulis false,
dan yang tidak dipakai dibelakangnya dapat diabaikan
contoh, aku ingin menggunakan input name dan file extension, maka:

$result = $imPlacer->post('nama_input_mu','png'); /* TIDAK sah */
$result = $imPlacer->post('nama_input_mu',false,'png'); /* sah */

berlaku juga untuk menggunakan | tidak | tidak | menggunakan maka bagian yang tidak harus ditulis false,
contoh, aku ingin menggunakan input name dan allowed extension, maka:

$allowed = ['png','jpg'];
$result = $imPlacer->post('nama_input_mu',$allowed); /* TIDAK sah */
$result = $imPlacer->post('nama_input_mu',false,false,$allowed); /* sah */

imPlacer base64

usage Penjelasan
fetch any penggunaan bebas GET/POST selama data berbentuk base64

dapat digunakan untuk ajax axios maupun fetch

penjelasan kode php

$result = $imPlacer->base64(
    $base64_data,       /* string/wajib */
    $filename,          /* string/false/bool -1 */
    $file_extension,    /* string/false/bool -1 */
    $upload_limit,      /* float/false/bool -1 */
    $replace_file,      /* true/false/bool -1 */
);
Syntax Penjelasan
$base64_data data image base64 dari manapun, GET/POST/SESSION
$filename nama file custom yang ingin ditulis, jika nama dari foto tersebut ingin di ganti namanya.
$file_extension ekstensi file custom misal jika ingin semua file yang diupload adalah png maka ditulis png
$upload_limit limit ukuran file gambar tersebut, dihitung dalam byte
$replace_file mengizinkan/tidak untuk me-replace file yang sudah ada, true jika mengizinkan replace.

contoh, aku hanya akan menggunakan data base64 saja, jadi:

$result = $imPlacer->base64($_POST['image_base64']); /* sah */

namun jika ingin menggunakan | tidak | menggunakan , maka bagian yang tidak harus ditulis false,
dan yang tidak dipakai dibelakangnya dapat diabaikan
contoh, aku ingin menggunakan data base64 dan file extension, maka:

$result = $imPlacer->base64($_POST['image_base64'],'png'); /* TIDAK sah */
$result = $imPlacer->base64($_POST['image_base64'],false,'png'); /* sah */

berlaku juga untuk menggunakan | tidak | tidak | menggunakan maka bagian yang tidak harus ditulis false,
contoh, aku ingin menggunakan data base64 dan upload limit, maka:

$result = $imPlacer->base64($_POST['image_base64'],$allowed); /* TIDAK sah */
$result = $imPlacer->base64($_POST['image_base64'],false,false,240000); /* sah */

imPlacer result

untuk result yang dihasilkan

//contoh
$result['status']['success'] // return true/false
Result Penjelasan Condition
['status']['success'] menghasilkan true/false param
['image']['name'] output berupa filename dan ekstensi dari foto yang sudah diupload need ['success']==true
['image']['path'] output system path ke file tersebut. need ['success']==true
['reason'] memunculkan alasan jika terjadi error atau sejenisnya both ['success']==true/false

Menggunakan Image Processor

Image processor menggunakan imagick
jadi untuk pengguna VPS harap menginstall imagicknya dulu, dan pengguna cPanel harap mengaktifkan fitur imagick.
tutorial install imagick di vps (ubuntu)
tutorial install imagick di vps (windows)
aktivasi imagick di cpanel
aktivasi imagick di whm
jika tidak ingin menggunakan ImageProcessor tidak apa apa untuk tidak menginstall imagick, tidak akan terjadi error.

dasar dasar

untuk cara include/require tetap sama, hanya saja tidak memerlukan working dir.

require_once __DIR__.'/path/to/plugin/image-processor.php';

penggunaan Image Processor biasanya digunakan setelah melalui proses upload, jadi kira kira seperti ini

upload gambar=>berhasil=>diprosess imagick=>gambar hasil resize/quality

jadi tidak ada prosess upload disini, image processor ini hanya pemanis untuk upload.
kedepannya akan ditambah fitur-fitur imagick lainnya


list cheatseet, akan dibutuhkan nanti.

cheat seet $filter

POINT
BOX
TRIANGLE
HERMITE
HANNING
HAMMING
BLACKMAN
GAUSSIAN
QUADRATIC
CUBIC
CATROM
MITCHELL
BESSEL
SINC
LANCZOS

cheat seet $compression

JPEG
UNDEFINED
NO
BZIP
FAX
GROUP4
JPEG2000
LOSSLESSJPEG
LZW
RLE
ZIP
DXT1
DXT3
DXT5
ZIPS
PIZ
PXR24
B44
B44A
LZMA
JBIG1
JBIG2

Image Processing Compress

contoh kode.

$result = \ImPro\Processor\compress(
    $file_path,      /* path/false/bool */
    $image_size,     /* int/false/bool -1 */
    $quality,        /* int/false/bool -1 */
    $filter,         /* string/false/bool -1 */
    $compression,    /* string/false/bool -1 */
);
Syntax Penjelasan
$file_path path ke file gambar yang ingin di prosess
$image_size fitur resize untuk skala max-width/max-height secara responsive
$quality 100 untuk kualitas tertinggi dan 1 untuk terendah
$filter tipe filter imagick, dapat diabaikan
$compression tipe kompresi imagick, dapat diabaikan

contoh jika ingin menggunakan | tidak | menggunakan , maka bagian yang tidak harus ditulis false,
dan yang tidak dipakai dibelakangnya dapat diabaikan
contoh, aku ingin menggunakan quality saja, maka:

$result = \ImPro\Processor\compress('/path/to/image.png',100); /* sah namun akan mempengaruhi image_size dan bukan quality */
$result = \ImPro\Processor\compress('/path/to/image.png',false,85); /* sah, mempengaruhi quality */

Image Processing Watermark

contoh kode.

$result = \ImPro\Processor\watermark(
    $img_path,           /* path/false/bool */
    $watermark_path,     /* path/false */
    $img_quality,        /* int/false */
    $filter,             /* string/false */
);
Syntax Penjelasan
$img_path path ke file gambar yang ingin di prosess
$watermark_path path ke file watermark, disarankan transparency/png
$img_quality 100 untuk kualitas tertinggi dan 1 untuk terendah
$filter tipe filter imagick, dapat ditulis false

semua wajib diisi dan yang tidak dipakai dibelakangnya TIDAK dapat diabaikan

$result = \ImPro\Processor\watermark('/path/to/image.png','/path/to/watermark.png',100,'LANCZOS');

Image Processor result

untuk result yang dihasilkan

//contoh
$result['status']['success'] // return true/false
Result Penjelasan Condition
['status']['success'] menghasilkan true/false param
['reason'] memunculkan alasan jika terjadi error atau suksess both ['success']==true/false

changelog

change :

{
   "change":true,
   "listchange":[
      {
         "message":"memperbaiki namespace, nambah example",
         "status":"perbaikan namespace",
         "newrelease":"Sub Release Rev 5",
         "update_date":"29-Aug-2021"
      },
      {
         "message":"nambahin try catch",
         "status":"harusnya sih bisa, kalau error tambahin ke issue",
         "newrelease":"Sub Release Rev 4",
         "update_date":"28-Aug-2021"
      }
   ]
}

About

memprosess gambar

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages