ID | post_title | author | post_excerpt | layout | permalink | published | post_date |
---|---|---|---|---|---|---|---|
471 |
PHP ile Resmi Yeniden Boyutlandırma |
Oral ÜNAL |
post |
true |
2012-06-11 18:31:07 -0700 |
Merhaba,
Bu makaledeki kodlar benim kendi eserim değildir. Bir blogda gördüm ve sizlerle paylaşmaya karar verdim.
SimpleImage isimli bu sınıf yolunu belirttiğiniz resimlerin genişliklerini ve yüksekliklerini düzenlemenizi sağlıyor. Bu sınıf sayesinde resimlerinizi %'li değer girerek ölçekleyebilir, genişlik ve yüksekliğini manuel belirleyebilir veya sadece genişlik/yükseklik değerlerinden birini girerek oranları bozmadan yeniden boyutlandırabilirsiniz.Boyutlandırma işlemlerini en basit yapabileceğini sınıflardan birisi bence bu.
Bu sınıfın kodları aşağıdaki gibidir:Yukarıdaki sınıfı SimpleImage.php adlı bir dosyaya kaydedin. Şimdi picture.jpg adlı resim dosyamızı 250x400 ebatlarında tekrar boyutlandıralım ve picture2.jpg ismiyle kaydedelim:<?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; }
} ?>
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resize(250,400);
$image->save('picture2.jpg');
?>
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(250);
$image->save('picture2.jpg');
?>
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->scale(50);
$image->save('picture2.jpg');
?>
<?php
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToHeight(500);
$image->save('picture2.jpg');
$image->resizeToHeight(200);
$image->save('picture3.jpg');
?>
<?php
header('Content-Type: image/jpeg');
include('SimpleImage.php');
$image = new SimpleImage();
$image->load('picture.jpg');
$image->resizeToWidth(150);
$image->output();
?>
Bu sınıfla ilgili sorularınızı forumda başlık açarak veya burada yorum yaparak sorabilirsiniz. Resimleri yeniden boyutlandırmak için harika bir sınıf.<?php if( isset($_POST['yukle']) ) { header('Content-Type: image/jpeg'); include('SimpleImage.php'); $image = new SimpleImage(); $image->load($_FILES['resim']['tmp_name']); $image->resizeToWidth(150); $image->output(); } else { ?> <form action="resim_yukle.php" method="post" enctype="multipart/form-data">
<input type="file" name="resim" /> <input type="submit" name="yukle" value="Yükle" />
</form> <?php } ?>
Kolay gelsin,