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

Форум PHP

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

 

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

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

тема: Превью изображения
 
 автор: ekstrom   (18.04.2010 в 20:28)   письмо автору
 
 

Что необходимо прописать в коде,чтоб размер(в кб) картинки на странице был меньше,чем настоящий.например настоящий размер изображения 240*320(размер 26кб),а в превью на странице 60*80(<26кб).

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 20:43)   письмо автору
 
   для: ekstrom   (18.04.2010 в 20:28)
 


<?
function img_resize($src$dest$width$height$rgb 0xFFFFFF$quality 100) { 
                             if (!
file_exists($src)) return false
                                 
$size getimagesize($src); 
                             if (
$size === false) return false
                             
$kr $size['0']/$size['1'];
                                  
$height $width/$kr;
                                 
$format strtolower(substr($size['mime'], strpos($size['mime'], '/')+1)); 
                                 
$icfunc "imagecreatefrom" $format
                             if (!
function_exists($icfunc)) return false
                                  
$x_ratio     $width $size[0]; 
                                  
$y_ratio     $height $size[1]; 
                                  
$ratio       min($x_ratio$y_ratio); 
                                  
$use_x_ratio = ($x_ratio == $ratio); 
                                  
$new_width   $use_x_ratio  $width  floor($size[0] * $ratio); 
                                  
$new_height  = !$use_x_ratio $height floor($size[1] * $ratio); 
                                  
$new_left    $use_x_ratio  floor(($width $new_width) / 2); 
                                  
$new_top     = !$use_x_ratio floor(($height $new_height) / 2); 
                                  
$isrc        $icfunc($src); 
                                  
$idest       imagecreatetruecolor($width$height); 
                                   
                                  
imagefill          ($idest00$rgb                         ); 
                                  
imagecopyresampled ($idest$isrc$new_left$new_top00
                                                      
$new_width$new_height$size[0], $size[1]); 
                                        
                                
imagejpeg          ($idest$dest$quality                    ); 
                                  
imagedestroy       ($isrc                                      ); 
                                  
imagedestroy ($idest                                           ); 
                                                return 
true

                   } 



Вы зываем так:

img_resize(Откуда, 'Где сохраняем, ширина, высота(необязательно расчитываеться автоматически));

  Ответить  
 
 автор: ekstrom   (18.04.2010 в 20:49)   письмо автору
 
   для: tvv123456   (18.04.2010 в 20:43)
 

А как например вставить в этот код?
$file_name = $_FILES['img1']['name'];
$file_name = strrchr($file_name, ".");
$filename = $_FILES['img1']['tmp_name'];






$s = "ORDER BY `id` DESC";
$bd = mysql_query("select * from newyear $s LIMIT 0,1;");
$list = mysql_fetch_array($bd);
$nom=($list['id']+1);
$ext = substr($_FILES['img1']['name'], 1 + strrpos($_FILES['img1']['name'], "."));
$ext =mb_strtolower($ext);
$size = $_FILES['img1']['size'];
$siz = round(($size/1024), 2);
if (@move_uploaded_file($filename, "$nom.$ext") && 
(mysql_query
("INSERT INTO `newyear` 
( `foto`, `size`)
VALUES
('$nom.$ext', '$siz')
")
))
{
echo 'Успешно.';
echo'<br><a href=".">Вернутся</a><br>';

else 
{
echo 'Ошибка.';
echo'<br><a href=".">Вернутся</a><br>';
}

  Ответить  
 
 автор: sim5   (18.04.2010 в 20:51)   письмо автору
 
   для: tvv123456   (18.04.2010 в 20:43)
 

Много лишнего, не нужного.

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 20:52)   письмо автору
 
   для: sim5   (18.04.2010 в 20:51)
 

Да есть чуток, все руки не доходят подправить(надеюсь сейчас хоть дойдут у кого-нить:), просто изначально код был для наложения изображения на фон.

  Ответить  
 
 автор: sim5   (18.04.2010 в 20:53)   письмо автору
 
   для: tvv123456   (18.04.2010 в 20:52)
 

Да не чуток, а прилично.

  Ответить  
 
 автор: ekstrom   (18.04.2010 в 20:51)   письмо автору
 
   для: tvv123456   (18.04.2010 в 20:43)
 

Или же сразу в этот..
while($mess = mysql_fetch_array($res5))
{
printf("<div class=kntent><br><img src ='%s' height='$shir' width='$vis'></img><br><a href='%s'>%s</a> [%s KB]<br>",$mess["foto"],$mess["foto"],$mess["foto"],$mess["size"]);
}

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 20:54)   письмо автору
 
   для: ekstrom   (18.04.2010 в 20:51)
 

Код создает картинку и сохраняет ее на диске. Относительный путь указан во втором параметре функции, просто сохраняйте этот путь в базу и просто тупо выводите.

  Ответить  
 
 автор: ekstrom   (18.04.2010 в 20:58)   письмо автору
 
   для: tvv123456   (18.04.2010 в 20:54)
 

Не могли бы Вы показать как это выглядит..

  Ответить  
 
 автор: sim5   (18.04.2010 в 21:00)   письмо автору
 
   для: ekstrom   (18.04.2010 в 20:58)
 

А вас ни сколько не смутит, если изображение просто не загуризится?

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 21:03)   письмо автору
 
   для: sim5   (18.04.2010 в 21:00)
 

Да нет если сделать все нужные проверки загружаемого файла, то картинка загрузиться(ниодного сбоя не было). А чистить код если честно лень :)

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 21:01)   письмо автору
 
   для: ekstrom   (18.04.2010 в 20:58)
 


<?
// проверяем все параметры загруженного файла
$a $HTTP_POST_FILES["userfile"]["tmp_name"];
// тут всякие проверки $a
img_resize($a'prevew/img1'.jpg', 370, 300); 

Сохраниться в папку 'prevew/img1.jpg' - этот путь заносим в базу

  Ответить  
 
 автор: sim5   (18.04.2010 в 21:05)   письмо автору
 
   для: tvv123456   (18.04.2010 в 21:01)
 

$_FILES["userfile"]["tmp_name"];

Проверять сперва нужно, что файл загружен, дабы не перемолачивать в пустую вздух. Не надо советовать "тупо".

  Ответить  
 
 автор: tvv123456   (18.04.2010 в 21:08)   письмо автору
 
   для: sim5   (18.04.2010 в 21:05)
 

>Проверять сперва нужно, что файл загружен, дабы не перемолачивать в пустую вздух.

Дак это я подразумевал когда писал: "// проверяем все параметры загруженного файла "
Ладно пойду учиться правильно излогать свои мысли :)

  Ответить  
Rambler's Top100
вверх

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