|
|
|
| Всем привет!!!
Решил сделать фотогалерею. Хочу использовать библиотеку GD для уменьшения фоток для вывода на главную страницу. А при нажатии чтобы открывалось большое фото.
Читал литератуту и темы на форуме по этому вопросу. Понял как надо уменьшать фотки. Одно не понятно: как выводить эти уменьшенные фотографии?
Есть предположение создать отдельную папку для маленьких фоток и, уменьшая их сохранять туда,а потом выводить оттуда. Надеюсь, объяснил понятно. Заранее спасибо | |
|
|
|
|
|
|
|
для: Roma
(26.07.2007 в 18:27)
| | Твой вариант нормальный. Только замотаешься потом их удалять оттудава, когда большой клон удалять будешь:)
Я генерю картинки на лету. Тормозит, зато проблем меньше в смысле удобства.
Просто выводишь свой html так:
<img src="small_img.php?w=200&h=200&src=real_url" />
Понятно объяснил? : ) | |
|
|
|
|
|
|
|
для: Roma
(26.07.2007 в 18:27)
| | add_img.php
<?php
$img_errors = "";
@mkdir($catalog, 0777);
if (@$_REQUEST['submit_reg'])
{
if (@file_exists($_FILES['file']['tmp_name']))
{
if ($_FILES['file']['size'] > 1024 * $upload_file_size)
{
$img_errors = "<li>Размер загружаемого Файла превышает ".$upload_file_size."Kb!";
}
else
{
$img = @getimagesize($_FILES['file']['tmp_name']);
if (preg_match('{image/(.*)}is', $img['mime'], $p))
{
if ($img[2]==2)
{
$load_img = imagecreatefromjpeg($_FILES["file"]["tmp_name"]);
include "rec_img.php";
}
elseif ($img[2]==1)
{
$load_img = imagecreatefromgif($_FILES["file"]["tmp_name"]);
include "rec_img.php";
}
elseif ($img[2]==3)
{
$load_img = imagecreatefrompng($_FILES["file"]["tmp_name"]);
include "rec_img.php";
}
else
{
$img_errors = "<li>Этот рисунок не является файлом с расширением JPG, GIF или PNG!";
}
}
else
{
$img_errors = "<li>Файл недопустимого формата!";
}
}
}
}
clearstatcache();
?>
|
rec_img.php
<?php
$small_img_src = $catalog."/".$img_name.".jpg";
$width = $img[0];
$height = $img[1];
$factor = $height / $small_height;
$small_width = $width / $factor;
$factor = strcspn($small_width,".");
$small_width = substr($small_width,0,"$factor");
$small_img = imageCreateTrueColor($small_width, $small_height);
imageCopyResampled($small_img, $load_img, 0, 0, 0, 0, $small_width, $small_height, $width, $height);
imageJpeg($small_img, $small_img_src, $quality_small_img);
imageDestroy($small_img);
imageDestroy($load_img);
?>
|
index.php
<?php
include "config.php";
$catalog = $user_catalog;
$img_name = $this_time;
include "add_img.php";
?>
|
config.php
<?php
$small_height = 130; // высота маленькой картинки
$quality_small_img = 75; // качество маленькой картинки
$user_catalog = "usr-foto"; // каталог в котором сохранять картинки
$upload_file_size = 100; // максимальный размер загружаемой картинки (КБ)
$this_time = time();
?>
|
ХЗ.... должно работать... :о) | |
|
|
|
|
|
|
|
для: deman-b
(26.07.2007 в 22:14)
| | АЙ ай ай!!!! форму забыл!! сорри))
form.php
<?php
include "config.php";
?><form action="index.php" method="post" name="form" enctype="multipart/form-data">
<b>Фото: </b>
<input type="file" name="file" size="28" maxlength="1024" class="forum_reg_input">
Max size: <?=$upload_file_size ?>kb
<input type="submit" name="submit_reg" value="OK" class="forum_reg_input">
</form>
|
конечно извение, код не идеальный... он только для примера.. | |
|
|
|
|
|
|
|
для: deman-b
(26.07.2007 в 22:14)
| | я наверно не в тему ляпнул этот код из своего старого форума..))))
вообще маленькие и "оригинальные" фотки мона хранить в одном каталоге..
например именуя их : small_1153938505.jpg и large_small_1153938505.jpg
1153938505 - время создания фотки на сервере...
но для удобства - лутше в раздельных small и large ... | |
|
|
|
|
|
|
|
для: deman-b
(26.07.2007 в 22:31)
| | Спасибо большое за пример | |
|
|
|