PHP Dersleri

PHP ile Resim Boyutunu Sıkıştırma (Compress)

PHP Programlama dili ile dosya yükleme işlemini gerçekleştirebiliyorsunuz. Yüklenen dosya eğer bir resim dosyası ise belirli bir oradan sıkıştırma yaparak yükleme ve sunma işlemini de yapabiliyorsunuz. Yükleme işleminde resim boyunutu sıkıştırmak için ek bir eklenti kullanmanıza da gerek yok. Bu işlemi, PHP Programlama dilinin içerisinde yer alan bir özellik ile gerçekleştirebiliyorsunuz.

PHP ile gerçekleştireceğiniz bu işlemle birlikte resim dosyasının boyutu düşebileceği gibi kalitesi de düşecektir. Sıkıştırma işlemini gerçekleştirmeden önce kalite kaybının olacağının bilincinde olarak gerçekleştirmeniz gerekmektedir.

Bu işlemi gerçekleştirmek için öncelikle HTML kodlarını oluşturalım.

<form method='post' action='' enctype='multipart/form-data'>
  <input type='file' name='resimDosyasi' >
  <button>YÜKLE</button> 
</form>

Yukarıda HTML kodlarını oluşturmuş olduk. Şimdi de bu yükleme işlemleriyle birlikte gerçekleştireceğimiz PHP kodlarına geçelim.

<?php
if($_POST){
   ## Dosyanın İsmini Alıyoruz
   $dosyaAdi      = $_FILES['imagefile']['name'];
   ## Geçerli Uzantıları Tanımladık.
   $gecerliUzantilar = array('png','jpeg','jpg');
   $dosyaYolu     = "resimler/".$dosyaAdi;
   ## Uzanti İşlemleri
   $dosyaUzantisi = pathinfo($dosyaYolu, PATHINFO_EXTENSION);
   $dosyaUzantisi = strtolower($dosyaUzantisi);
   ## Uzantı Kontrol ve Yükleme
   if(in_array($dosyaUzantisi,$gecerliUzantilar)){
      ## Kalite değerini 60 yaptık.
      kaliteDusur($_FILES['imagefile']['tmp_name'],$dosyaYolu,60);
   }else{
      ## Uzantılar harici yükleme alanı
      echo "Bilinmeyen dosya uzantısı.";
   }
}
## Veri Tiplerine Göre Sıkıştırma
function kaliteDusur($kaynak, $hedef, $kalite){
   $bilgiler = getimagesize($kaynak);
   if ($bilgiler['mime'] == 'image/jpeg'){
      $resim = imagecreatefromjpeg($kaynak);
   }elseif ($bilgiler['mime'] == 'image/gif'){
      $resim = imagecreatefromgif($kaynak);
   }elseif ($bilgiler['mime'] == 'image/png') {
      $resim = imagecreatefrompng($kaynak);
   }
   imagejpeg($resim, $hedef, $kalite);
}
?>

Yukarıda gerçekleştirmiş olduğumuz işlemlerde ilk olarak klasik bir şekilde görsel dosyasının bilgilerine ve uzantılarına bakarak gerekli uzantıların tanımlamasını gerçekleştirdik. Genel tanımlamalardan sonra, izin verilen uzantılarda bir yükleme gerçekleştiği zaman yükleme işlemini gerçekleştirmesi gerektiğini belirttik. Eğer farklı bir uzantı ise uyarı mesajı vermesini de sağladık.

Belirlenen uzantılarda yükleme yapıldığında kaliteDusur() isminde yer alan fonksiyona gerekli bilgileri gönderek JPEG, GIF ve PNG dosyası için farklı işlemlerin yapılmasını sağladık. Uzantılara göre yapılan işlemde 60 değerinde bir sıkıştırma yapılacaktır. Bu sıkıştırma sonucunda resim dosyasının boyutu düşecek aynı zamanda kalitede düşecektir. Bu şekilde görselleri sıkıştırma işlemine tabi tutabilirsiniz.

Daha Fazla Göster

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Kapalı