PHP Üzerinde SimpleImage Kullanımı

PHP Üzerinde SimpleImage Kullanımı

Hepinize merhaba dostlarım 😊. Daha yazıya girer girmez hemen mutlu olduğunuzu gördüm makaleye girerken bile cidden bir an duraksadım 😅. Eveeeet yine ben, yine bir yoğun geçen hafta sonunun gelmesi ve yeni bir konu. Yalnız bunu konu diye geçmemek lazım büyük projelerde hemen hemen kullanılan bir yapı. 

Şimdi o heyecanınızın daha da arttığını taaa bu kısımdan seziyorum çünkü büyük proje demek bizlerin gelişmesinde katkı sağlayacak büyük bir öğretmen demek 😊. O halde ne duruyoruz hadi hızlıca konumuza girişimizi yapalım. Şimdi içinizden diyorsunuz

Hocam artık merakta bırakmayın anlatın nedir bu konu ?

Tamam tamam daha fazla uzatmayacağım hemen konuya girişimi yapacağım :). Yalnız bu arada bu konuyu benden özellikle rica eden bir arkadaşımız var kendisine bizim yeni bir bilgi kazanmamıza yardımcı olduğu için çok teşekkür ediyoruz 😊. Allah ondan razı olsun. Konumuzun ismi SimpleImage

Siz hemen diyorsunuz acaba nedir bu simpleImage diye. Hemen bir başlık altında açıklamak istiyorum

SimpleImage Nedir ?

Eveeeet gelelim en ama en sevdiğimiz, büyük projelerin vazgeçilmezi olan konumuz yani SimpleImage konumuza 😊.

SimpleImage konumuza bakacak olursak dostlarım bu yapı bizim projemiz üzerine entegre edilerek resim yükleme işlemlerinde crop (yani resim boyutlandırma), resime efekt verme, resime watermark ekleme (yani sitenizin logosu olabilir veya yazı olabilir) ekleme işlemlerini ve daha birçok işlemleri yapmamıza olanak sağlayan bir yapıdır. Bunu sistemimize entegre ederek en çok kullanılan yöntemlerden birisi olan resim kırpma isleminden bahsedeceğim dostlarım. 

Öncelikle localhost klasörümüzü açıp içerisinde bir klasör oluşturalım dostlarım. İsmine de simpleImage yazalım. Hemen içerisine index.php isminde ve islem.php kısmında iki tane dosya, ek olarak da uploads isminde bir klasör oluşturalım. Yani yapımız aşağıdaki şekildeki gibi olsun

şeklinde klasörümüzü ve dosyalarımızı oluşturuyoruz dostlarım. Daha sonrasında index.php içerisinde aşağıdaki gibi bir yapı yazalım

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>SımpleImage Kullanımı | MFSoftware Blog</title>
</head>
<body>
<form action="islem.php" method="POST" enctype="multipart/form-data">
    <input type="file" name="file">
    <br><br>
    <button type="submit" name="fileUpload">Dosya Yükle</button>
</form>
</body>
</html>

şeklinde kodlarımızı yazalım. 

Eveeet index.php dosyalarımızı şekildeki gibi oluşturduğumuza göre dostlarım sıra gelelim islem.php dosyamızda değişiklik yapmamıza dostlarım. Öncelikle islem.php dosyamızda bu isteği yakalayabiliyor muyuz bunu bi inceleyelim. Hemen kodlama kısmını açalım ve

<?php

if (isset($_POST['fileUpload'])){
    echo "<pre>";
    print_r($_FILES['file']);
}

şeklinde kodlarımızı yazalım. Kodlarımızı yazdık amaaa bir şeyi unuttuk 😊. Nedir o diye soracak olursanız

Test etmemiz yok mu 😅

Evet evet yanlış değil bunu test etmemiz lazım. Hemen hızlıca localhost u açıp bizim oluşturduğumuz klasörü açalım ve bakalım index.php sayfamız çalışıyor mu bakalım. Bunun için Chrome tarayıcısını açıp adres satırına

http://localhost/simpleImage/

adresini yazalım ve Enter tuşuna basalım dostlarım. Ekranımıza gelecek olan çıktı

şeklinde bir görünüm bizi karşılayacaktır. Herhangi bir dosya seçip Dosya Yükle butonuna basalım. Bu sefer karşımıza gelecek dosyamız ise

şeklinde bir çıktı bizi karşılayacaktır. Yani bu sonuçlara bakacak olursak dostlarım bizim kodlarımızda bu kısma kadar herhangi bir sıkıntı yok 😊. Bu kısma kadar tamam isek hemen proje ana dizinimize gelip composer ile simpleImage kütüphanesini kurmamız gerekecek. (Bilgisayarınızda composer kurulu değilse dostlarım buradan faydalanabilirsiniz).

Hemen terminalimizi açalım ve

composer require claviska/simpleimage

kodunu yazalım. Enter tuşuna bastığımızda internet hızınıza göre kurulum işlemi gerçekleşecektir dostlarım. Yükleme işlemi sonlandığında bizim proje ana klasörümüzdeki görünüm

şeklinde işaretlediğim kısımlar yeni geldi yani kurumla beraber geldi. Şimdi biz vendor içerisindeki claviska klasörünü projemizin ana dizinine çıkaralım ve vendor klasörünü,  composer.json ve composer.lock dosyalarını silelim. Yani dizin içerisindeki klasör ve dosya yapımız aşağıdaki gibi olsun

şeklinde klasör ve dosya yapımızı oluşturduk dostlarım. Sonrasında ise islem.php içerisine aşağıdaki kodları yazalım

<?php

require_once 'claviska/simpleimage/src/claviska/SimpleImage.php';  // KUTUPHANEMİZİ SAYFAMIZA DAHİL ETTİK

if (isset($_POST['fileUpload'])){

    $file = $_FILES['file']['tmp_name'];   // DOSYAMIZIN TMP NAME ISMINI ALDIK
    $genislik = 500;   // GENİŞLİK DEĞERİNİ ALDIK
    $yukseklik = 500;  // YUKSEKLİK DEĞERİNİ ALDIK

    try {
        // Create a new SimpleImage object
        $image = new \claviska\SimpleImage();

        // Magic! ✨
        $image
            ->fromFile($file)         //DOSYAMIZIN TMP NAME ISMI
            ->autoOrient()            // DEĞİŞTİRİLEBİLİR GÖRÜNTÜ DOSYASI OLARAK AYARLA
            ->resize($genislik, $yukseklik)   // GENİŞLİK VE YUKSEKLİK DEĞERİ
//            ->flip('x')                               // DÖNDÜRME AYARI
//            ->colorize('DarkBlue')                    // EFEKT VERME
//            ->border('black', 10)                     // KENARLIK VERME
//            ->overlay('watermark.png', 'bottom right')  // RESİM UZERİNE WATERMARK EKLEME
            ->toFile('uploads/'.$genislik.'x'.$yukseklik.'-'.time().'.png', 'image/png')
            /*
             *  BU KISIMDA UPLOADS KISMI ----> uploads klasörü içine kaydedileceğini belirtit,
             *
             *  slash sonrasında ise resmin hangi isimde kaydedileceğini belirler
             *
             *  en son kısımdaki image/png ise hangi tipte kayıt edileceğini ayarlamamıza yardımcı olur
             */

            ->toScreen();  // RESİM KAYIT SONRASI EKRANDA GÖSTERME ISLEMI YAPMA ISLEMI
    } catch(Exception $err) {
        echo $err->getMessage();   // HATA VARSA HATAYI GÖSTERİR
    }
}

şeklinde kodları yazdık. Yorum satırlarında gerekli açıklamaları yaptım dostlarım. Şimdi ise gelin sistemi test edelim (Yalnızca resim kırpma işlemi yaptık dostlarım haberiniz olsun 😊.)

Öncelikle Google Adres Çubuğu'na gelelim ve

https://placehold.it/1200x1200

yazalım. Bizim için oluşturulan 1200x1200 formatındaki PNG resmini indirelim. Daha sonrasında ise projemizi localhost üzerinde açalım ve

şeklinde resmimizi seçelim. Daha sonrasında ise Dosya Yükle butonumuza basalım ve ekranımıza gelecek olan çıktıya bakalım

bingoooooo 💯. Resim yükleme işlemi başarılı. Şimdi gerçekten de boyutlandırma işlemimiz başarılı mı bir bakalım. Hemen uploads klasörümüzün içerisindeki png uzantılı dosyamızın boyutuna bakalım

şeklinde 500x500 olarak başarılı bir şekilde ayarlandığını gördük dostlarım 😊. Daha fazla değişik özellikleri görmek için linki buraya bırakıyorum.

Eveeeet dostlarım bu yazımda sizlere PHP üzerinde SimpleImage kütüphanesinin kullanımından elimden geldiğince dilim döndüğünce bahsetmeye çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin 😊. Konu başlarda biraz karmaşık veya zor olabilir dostlarım anlıyorum. Öğrenme süreci içerisinde bu gibi olayların olması son derece doğaldır dostlarım. Bu süreç içerisinde sizlerden yapmanızı istediğim tek şey her yazımda da dediğim gibi "İstiklarlı ve Azimli Olmanız, Bolca Pratik Yapmanız" olacaktır. Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır :).

Hayatınızı gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Eloquent ORM Kullanımı
Sonraki YazıPHP Üzerinde Neden <? Kullanmamalıyız
Yorumlar (1)
Zafer Yıldız
07.11.2021

Eline sağlık .ok güzel olmuş

Yorum Yapabilirsiniz