@TuncerMehmet; şu şekilde çözebiliriz.
sınıf dosyamız;
<?php
/**
* @kaynak: http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/
*/
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);
}
else if($image_type == IMAGETYPE_GIF)
{
imagegif($this->image);
}
else if($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;
}
}Dosya yükleme esnasında kullanımı;
<?php
# Üst kısımda verdiğim sınıf dosyasını dahil edelim.
require("simple-image.php");
if(isset($_FILES["resim"]))
{
$dosya_tipi = explode(".", $_FILES["resim"]["name"]);
$dosya_tipi = end($dosya_tipi);
if($dosya_tipi == "jpg" || $dosya_tipi == "jpeg" || $dosya_tipi == "png")
{
$dosya_gecici_yolu = $_FILES["resim"]["tmp_name"];
$dosya_ismi = sprintf("%s.%s", substr(md5($_FILES["resim"]["name"].time().rand(0, 1000)), 5, 10), $dosya_tipi);
$dosya_yolu = $dosya_ismi;
move_uploaded_file($dosya_gecici_yolu, $dosya_yolu);
# Yeniden boyutlandırma işlemi
$resim = new SimpleImage();
$resim->load($dosya_yolu);
if($resim->getHeight() > 600)
{
$resim->resizeToHeight(600);
}
if($resim->getWidth() > 800)
{
$resim->resizeToWidth(800);
}
if($resim->image_type == IMAGETYPE_JPEG)
{
$resim->save($dosya_yolu, $resim->image_type, IMAGETYPE_JPEG);
}
if($resim->image_type == IMAGETYPE_PNG)
{
$resim->save($dosya_yolu, $resim->image_type, IMAGETYPE_PNG);
}
echo "İşlem Başarılı!";
}
}
?><!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<form method="post" enctype="multipart/form-data">
<input type="file" name="resim" />
<button type="submit">Yükle</button>
</form>
</body>
</html>