Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обрезание ширины фотографии при загрузки

Сообщения:  [1-2] 

 
 автор: Trianon   (03.07.2008 в 18:07)   письмо автору
 
   для: t3ma   (03.07.2008 в 16:39)
 

>Ребят подскажите как сделать брезание ширины фотографии при загрузки до 500 пискелей..
>т.е. чтобы фотография была 500 (ширина) * (высота любая)

Вы не написали, что делать с фотографией, если её ширина
а) > 500 pix - с какой стороны резать?
б) < 500 pix - резать и так нечего, что хочется-то?

   
 
 автор: t3ma   (03.07.2008 в 16:39)   письмо автору
 
 

Ребят подскажите как сделать брезание ширины фотографии при загрузки до 500 пискелей..
т.е. чтобы фотография была 500 (ширина) * (высота любая)

вот код:


<?php

  require("utils.php");
  require("connect.php");

  session_start();

  if (empty($_SESSION["login"]))
  {
    echo "<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
          </HEAD></HTML>";
  }

  $i_name = addslashes(htmlspecialchars($_POST["i_name"]));
  $caption = addslashes(htmlspecialchars($_POST["caption"]));
  $album = addslashes(strip_tags($_POST["album"]));
  $new_alb = addslashes(strip_tags($_POST["new_alb"]));
  $cat = addslashes(strip_tags($_POST["cat"]));

  $check_cat = @mysql_query("SELECT title FROM gl_categorys WHERE id=$cat");
  if (mysql_num_rows($check_cat) != 1)
  {
    my_exit("Ошибка!");
  }

  $get_pid = @mysql_query("SELECT id FROM gl_users WHERE login='$_SESSION[login]'");
  $pid = @mysql_result($get_pid, 0);

  if (empty($new_alb))
  {
    $check_valid_album = @mysql_query("SELECT * FROM gl_albums WHERE id=$album");

    if ((!$check_valid_album) || (mysql_num_rows($check_valid_album) < 1))
        my_exit("Ошибка");
  }
  else
  {
    mysql_query("INSERT INTO gl_albums VALUES (0, $pid, '$new_alb', $cat)");
    $get_album = @mysql_query("SELECT id FROM gl_albums WHERE a_name='$new_alb'");
    $album = @mysql_result($get_album, 0);
  }

//  print_r($_FILES["photo"]);

  $file_name = $_SESSION["login"] . "_" . $_FILES["photo"]["name"];

  if (strpos(strtolower($_FILES["photo"]["type"]), "image") === false)
  {
    my_exit("Неверный формат загружаемого файла!");
  }

  if ($_FILES["photo"]["size"] > 1024*$MAXFILESIZE)
  {
    my_exit("Размер файла не должен превышать " . ($MAXFILESIZE) . " килобайт!");
  }

  if (file_exists("files/" .$file_name))
  {
    my_exit("Файл с таким именем уже существует! Измените имя файла!");
  }

  $ext = strtolower(substr($file_name, strrpos($file_name, ".") + 1));

  if (($ext != "jpg") && ($ext != "png") &&($ext != "gif") && ($ext != "jpeg"))
  {
    my_exit("Допустимы только следующие форматы файлов: gif, jpg, png!");
  }

  if (!copy($_FILES["photo"]["tmp_name"], "files/" . $file_name))
  {
    my_exit("Произошла ошибка при загрузке файла!");
  }

  //создаем уменьшенную копию изображения

  switch ($ext)
  {
    case "gif":
    {
        $image = imagecreatefromgif("files/" . $file_name);
        break;
    }

    case "png":
    {
        $image = imagecreatefrompng("files/" . $file_name);
        break;
    }

    case "jpg":
    {
        $image = imagecreatefromjpeg("files/" . $file_name);
        break;
    }

    case "jpeg":
    {
        $image = imagecreatefromjpeg("files/" . $file_name);
        break;
    }
  }

  $info = getimagesize("files/" . $file_name);

  $k = 1;

  if (($info[0] > 100) || ($info[1] > 100))
  {
    if ($info[0] > $info[1])
    {
        $k = $info[0] / 100;
    }
    else
    {
        $k = $info[1] / 100;
    }
  }

  $s_w = ceil($info[0] / $k);
  $s_h = ceil($info[1] / $k);

  $small_image = imagecreatetruecolor($s_w, $s_h);

  imagecopyresampled($small_image, $image, 0, 0, 0, 0, $s_w, $s_h, $info[0], $info[1]);

  switch ($ext)
  {
    case "gif":
    {
        imagegif($small_image, "files/small_" . $file_name);
        break;
    }

    case "png":
    {
        imagepng($small_image, "files/small_" . $file_name);
        break;
    }

    case "jpg":
    {
        imagejpeg($small_image, "files/small_" . $file_name);
        break;
    }

    case "jpeg":
    {
        imagejpeg($small_image, "files/small_" . $file_name);
        break;
    }
  }

  $write_query = @mysql_query("INSERT INTO gl_images VALUES (0, '$file_name', $album, '$i_name', '$caption', 'not_auth', 0, 0, 0)");

  require("top.php");

  if (!$write_query)
  {
    my_exit("Не удалось сохранить данные о изображении!");
  }
  else
  {
    echo "<center><h3>Ваша фотография добавлена, после проверки администратором она появится в нашей галерее.</h3></center>";
  }

  require("bottom.php");

?>

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime