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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Обрезание ширины фотографии при загрузки
 
 автор: 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_pid0);

  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_album0);
  }

//  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_namestrrpos($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$image0000$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");

?>

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

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

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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования