This Banner is For Sale !!
Get your ad here for a week in 20$ only and get upto 15k traffic Daily!!!

Membuat Thumbnail Gambar Dengan Codeigniter 4


Tutorial kali ini akan membahas bagaimana membuat gambar thumbnail menggunakan codeigniter 4.Thumbnail di internet sendiri adalah gambar asli yang diperkecil agar proses loading lebih cepat.Apalagi jika gambar asli kita memiliki ukuran yang besar.

Ada dua fungsi yang bisa digunakan pertama match dan kedua crop.



Menggunakan Fungsi Match

Pada fungsi match terdapat tiga parameter :

match(int $width, int $peak = null, string $place = 'heart')
Enter fullscreen mode

Exit fullscreen mode

  1. $width untuk lebar dari gambar
  2. $peak untuk tinggi gambar
  3. $place untuk menentukan mulai dari bagian mana gambar dipotong.Ada beberapa pilihan : ‘top-left’, ‘high’, ‘top-right’, ‘left’, ‘heart’, ‘proper’, ‘bottom-left’, ‘backside’, ‘bottom-right’.
<?php namespace AppControllers;
class Thumbnail extends BaseController
{
    public operate index()
    {
        $thumbnail = ConfigServices::picture()
        ->withFile(ROOTPATH.'public/uploads/gambar.jpg')
        ->match(100, 100, 'heart')
        ->save(ROOTPATH.'public/uploads/thumb/gambar.jpg');
    }
}
Enter fullscreen mode

Exit fullscreen mode

Pada kode diatas kita memangil fungsi ConfigServices::picture() dari Codeigniter 4,withFile adalah lokasi dari file gambar asli kita,match untuk mengcrop gambar,save untuk menyimpan hasil ke lokasi yang baru.



Menggunakan Fungsi Crop

Terdapat 6 parameter pada fungsi crop:

crop(int $width = null, int $peak = null, int $x = null, int $y = null, bool $maintainRatio = false, string $masterDim = 'auto')
Enter fullscreen mode

Exit fullscreen mode

  1. $width untuk lebar dari gambar
  2. $peak untuk tinggi gambar
  3. $x titik awal pixel dari kiri gambar untuk mulai di crop.
  4. $y titik awal pixel dari atas gambar untuk mulai di crop.
  5. $maintainRatio defaulnya false,jika true akan mempertahakan side ratio dari gambar asli.
  6. $masterDim menentukan bagian mana yang tidak tersentuh jika $mainRatio bernilai true.Nilainya bisa : ‘width’,’peak’,’auto’.

Gunakan crop jika place awal cropping tidak ada di place fungsi match diatas.

<?php namespace AppControllers;
class Thumbnail extends BaseController
{
    public operate index()
    {
        $ukuranCrop = 50;

        $data = ConfigServices::picture()
            ->withFile(ROOTPATH.'public/uploads/gambar.jpg')
            ->getFile()
            ->getProperties(true);

        $xOffset = ($data['width'] / 2) - ($ukuranCrop / 2);
        $yOffset = ($data['height'] / 2) - ($ukuranCrop / 2);

        $thumbnail = ConfigServices::picture()
                    ->withFile(ROOTPATH.'public/uploads/gambar.jpg')
                    ->crop($ukuranCrop, $ukuranCrop, $xOffset, $yOffset)
                    ->save(ROOTPATH.'public/uploads/thumb/gambar.jpg');
    }
}
Enter fullscreen mode

Exit fullscreen mode

Misalnya kita ingin mencrop dari tengah-tengah gambar dengan menggunakan crop seperti yang dilakukan pada fungsi match sebelumnya.Proses akan lebih ribet,kita perlu mendapatkan dulu data dari gambar asli agar mendapatkan posisi pas yang ditengah.

Bisa dilihat kita harus menggunakan rumus seperti yang digunakan di $xOffset untuk mendapatkan posisi heart dari x.Jauh lebih ribet padahal dengan fungsi match kita cukup panggil place heart.

$xOffset = ($data['width'] / 2) - ($ukuranCrop / 2);
Enter fullscreen mode

Exit fullscreen mode

Dari dua metode untuk membuat thumbnail diatas ,match lebih kami sarankan karena lebih mudah penggunaanya.Gunakan crop hanya jika benar-benar membutuhkan titik awal kiri dan atas yang spesifik.

Sekian tutorial kali ini,jika ada pertanyaan bisa ditanyakan.Jika tidak yasudah.

The Article was Inspired from tech community site.
Contact us if this is inspired from your article and we will give you credit for it for serving the community.

This Banner is For Sale !!
Get your ad here for a week in 20$ only and get upto 10k Tech related traffic daily !!!

Leave a Reply

Your email address will not be published. Required fields are marked *

Want to Contribute to us or want to have 15k+ Audience read your Article ? Or Just want to make a strong Backlink?