|
|
|
| Ребят подскажите как сделать брезание ширины фотографии при загрузки до 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");
?>
|
| |
|
|
|
|
|
|
|
для: t3ma
(03.07.2008 в 16:39)
| | >Ребят подскажите как сделать брезание ширины фотографии при загрузки до 500 пискелей..
>т.е. чтобы фотография была 500 (ширина) * (высота любая)
Вы не написали, что делать с фотографией, если её ширина
а) > 500 pix - с какой стороны резать?
б) < 500 pix - резать и так нечего, что хочется-то? | |
|
|
|