Upload and resize image on 240 px
- function upload_image($image, $size = 240) {
- define('DS', DIRECTORY_SEPARATOR);
- $dir = 'tmp';
- if(!is_dir($dir)) {
- mkdir($dir, 0777, 1);
- }
- if ($image) {
- $newname = $_FILES['image']['name'];
- move_uploaded_file($image, $dir . DS . $newname);
- $info = @getimagesize($dir . DS . $newname);
- if ($info) {
- if ($info[2] > 3) {
- echo '<div>Не верный тип файла</div>';
- } else {
- switch ($info[2]) {
- case 1:
- $function = 'imagecreatefromgif';
- break;
- case 2:
- $function = 'imagecreatefromjpeg';
- break;
- case 3:
- $function = 'imagecreatefrompng';
- break;
- }
- $image = $function($dir . DS . $newname);
- }
- $x = imagesx($image);
- $y = imagesy($image);
- } else {
- echo '<div>Ошибка загрузки файла</div>';
- }
- $filename = $dir . DS . time() . '.jpg';
- // пропорционально уменьшить по ширине до 240
- if ($y > $size) {
- $newx = $size;
- $newy = $y * ($size / $x);
- } else {
- $newx= $x;
- $newy = $y;
- }
- $newimg = imagecreatetruecolor($newx, $newy);
- if ($info[2]==3) {
- // прозрачность для png
- imagefill($newimg, 0, 0, imagecolorallocate($newimg, 255, 255, 255));
- } elseif ($info[2]==1) {
- // прозрачность для gif
- imagecolortransparent($image, imagecolorallocate($image, 255, 255, 255));
- }
- imagecopyresampled($newimg, $image, 0, 0, 0, 0, $newx, $newy, $x, $y);
- @imagejpeg($newimg, $filename, 100);
- } else {
- return false;
- }
- }
возможность загружать gif , png, jpg и изменять пропорционально размер
пример
пример
- @upload_image($_FILES['image']['tmp_name'], 500); // 500 px
- echo '<form enctype="multipart/form-data" action="" method="post">' .
- '<div>Загрузить фото</div>' .
- '<div><input name="image" type="file" /></div>' .
- '<div><input type="submit" name="submit" value="Ok" /></div>' .
- '</form>';