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

Форум PHP

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

 

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

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

тема: Закрузка картинок и уменьшеная копия.
 
 автор: brys   (09.04.2008 в 14:18)   письмо автору
 
 

Скрипт загружает картинки из некоторого количества
<input name="img[]" type="file" >

и создает папки для картинок, если это нужно... + добавляет данные в БД

Помогите усовершенствовать скрипт, чтобы он еще делал уменьшенную копию картинке


<?php

$SQL
='';
for (
$i 0$i count($_FILES['img']['name']); $i++ )
{
  if(
is_uploaded_file($_FILES['img']['tmp_name'][$i]))
  {
    if(
file_exists($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id)==false)
    {
    
mkdir($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id0700);
    }

    if(
file_exists($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id."/img".$i)==false)
    {
    
mkdir($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id."/img".$i0700);
    
mkdir($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id."/img".$i."/small"0700);
    }
    
copy($_FILES['img']['tmp_name'][$i], $_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id."/img".$i."/".$_FILES['img']['name'][$i]);
    
$SQL=$SQL.",`img".$i."`='".$_FILES['img']['name'][$i]."'";
   }
}

 
$sql_insert "INSERT INTO dnd_thing SET `name` ='".$name."', `text` ='".$text."', `catid` = '".$catid."', `secid` = '".$secid."',
  `dostavka` = '"
.$dostavka."', `added` = '".$added."', `active` = '".$active."', `reiting` = '".$reiting."', `ip` = '".$ip."'
  "
.$SQL;
  
 
mysql_query($sql_insert);

?>


Создаю для уменьшенных картинок папку
<?php 
mkdir
($_SERVER["DOCUMENT_ROOT"]."/dnd/img_thing/".$id."/img".$i."/small"0700); 
?>

   
 
 автор: himic   (09.04.2008 в 15:12)   письмо автору
 
   для: brys   (09.04.2008 в 14:18)
 

Вот очень удобная функция для создания уменьшенных копий

<?  function resizeimg($filename$smallimage$w$h
  { 
    
// Имя файла с масштабируемым изображением 
    
$filename "files/".$filename
    
// Имя файла с уменьшенной копией. 
    
$smallimage "files/".$smallimage;     
    
// определим коэффициент сжатия изображения, которое будем генерить 
    
$ratio $w/$h
    
// получим размеры исходного изображения 
    
$size_img getimagesize($filename); 
    
// Если размеры меньше, то масштабирования не нужно 
    
if (($size_img[0]<$w) && ($size_img[1]<$h)) return true
    
// получим коэффициент сжатия исходного изображения 
    
$src_ratio=$size_img[0]/$size_img[1]; 

    
// Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились 
    // пропорции исходного изображения 
    
if ($ratio<$src_ratio
    { 
      
$h $w/$src_ratio
    } 
    else 
    { 
      
$w $h*$src_ratio
    } 
    
// создадим пустое изображение по заданным размерам 
    
$dest_img imagecreatetruecolor($w$h);   
    
$white imagecolorallocate($dest_img255255255);        
    if (
$size_img[2]==2)  $src_img imagecreatefromjpeg($filename);                       
    else if (
$size_img[2]==1$src_img imagecreatefromgif($filename);                       
    else if (
$size_img[2]==3$src_img imagecreatefrompng($filename); 

    
// масштабируем изображение     функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии         
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    
imagecopyresampled($dest_img$src_img0000$w$h$size_img[0], $size_img[1]);                 
    
// сохраняем уменьшенную копию в файл 
    
if ($size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
    else if (
$size_img[2]==1imagegif($dest_img$smallimage);                       
    else if (
$size_img[2]==3imagepng($dest_img$smallimage); 
    
// чистим память от созданных изображений 
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;          
  } 
?> 

   
Rambler's Top100
вверх

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