Bazen resimler istediğimiz boyutta olmuyor. Yeniden boyutlandırmak gerekebilir. Bunun için en kolay sınıflardan biri olan SimpleImage sınıfı imdadınıza yetişiyor. Dosya yolunu girdiğiniz resimlerin genişliklerini ve yüksekliklerini düzenleyebilir, en boy oranlarını korur, yüzdeli ölçeklendirme yapabilir veya tüm bunları manuel olarak belirleyip php ile yeniden eklemeyi sağlayabilirsiniz.
SimpleImage Sınıf Kodları
<?php /* * File: SimpleImage.php * Author: Simon Jarvis */ class SimpleImage { var $image; var $image_type; function load($filename) { $image_info = getimagesize($filename); $this->image_type = $image_info[2]; if( $this->image_type == IMAGETYPE_JPEG ) { $this->image = imagecreatefromjpeg($filename); } elseif( $this->image_type == IMAGETYPE_GIF ) { $this->image = imagecreatefromgif($filename); } elseif( $this->image_type == IMAGETYPE_PNG ) { $this->image = imagecreatefrompng($filename); } } function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image,$filename,$compression); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image,$filename); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image,$filename); } if( $permissions != null) { chmod($filename,$permissions); } } function output($image_type=IMAGETYPE_JPEG) { if( $image_type == IMAGETYPE_JPEG ) { imagejpeg($this->image); } elseif( $image_type == IMAGETYPE_GIF ) { imagegif($this->image); } elseif( $image_type == IMAGETYPE_PNG ) { imagepng($this->image); } } function getWidth() { return imagesx($this->image); } function getHeight() { return imagesy($this->image); } function resizeToHeight($height) { $ratio = $height / $this->getHeight(); $width = $this->getWidth() * $ratio; $this->resize($width,$height); } function resizeToWidth($width) { $ratio = $width / $this->getWidth(); $height = $this->getheight() * $ratio; $this->resize($width,$height); } function scale($scale) { $width = $this->getWidth() * $scale/100; $height = $this->getheight() * $scale/100; $this->resize($width,$height); } function resize($width,$height) { $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight()); $this->image = $new_image; } } ?>
Örnek Kullanım
Yukarıda belirtilen kodları bir dosyaya kopyalıyoruz ve ismini SimpleImage.php olarak kaydediyoruz. Sonrasında bunu include fonksiyonu ile ilgli yere çağırabilirsiniz.1-) Genişlik ve yükseklik ayarlama:
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('resim.jpg'); $image->resize(500,800); $image->save('resim2.jpg'); ?>
2-) Genişlik belirterek oranları koruyarak resmi ayarlama:
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('resim.jpg'); $image->resizeToWidth(300); $image->save('resim2.jpg'); ?>
3-) Belirli bir yüzde ile küçültme:
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('resim.jpg'); $image->scale(30); $image->save('resim2.jpg'); ?>
4-) Farklı yükseklikte ve farklı isimle yeniden ekleme:
<?php include('SimpleImage.php'); $image = new SimpleImage(); $image->load('resim.jpg'); $image->resizeToHeight(400); $image->save('resim2.jpg'); $image->resizeToHeight(250); $image->save('resim3.jpg'); ?>
İşinize yarayacağını düşünüyorum. Merak ettiğiniz ya da takıldığınız yerleri konu altına yorum atarak paylaşabilirsiniz. En yakın sürede yanıtlamaya çalışacağım.
Bir yanıt yazın