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

Форум PHP

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

 

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

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

тема: Групповое изменение характеристик картинки
 
 автор: Hin   (16.03.2006 в 18:05)   письмо автору
 
 

Народ, надо почками менять характеристики изображений(размер, цвет), готовых решений я не нашол. Решил сам написать скрип. PHP знаю на уровне новичок. Скрипт работает, но почему-то только 6 картинок. И пишет мол простой в 30 сек пройден.

<?php
$ndirct 
"large/";
$nhdl=opendir($ndirct);
while (
$nfile readdir($nhdl))
{
if ((
$nfile!=".")&&($nfile!=".."))
        {
                
$na[] = $nfile;
        }
}
closedir($nhdl);
if (
sizeof($na)!=0)
{
rsort($na);
$vsego=sizeof($na);

while (
$vsego >=31)
{
    
$size_img getimagesize("large/".$na[$i]);
    
// получим коэффициент сжатия исходного изображения
    
$src_ratio=$size_img[0]/$size_img[1];

    
$h=300;
    
$w=$h*$size_img[0]/$size_img[1];
     
// определим коэффициент сжатия изображения, которое будем генерить
    
$ratio $w/$h;
   
// создадим пустое изображение по заданным размерам
   
$dest_img imagecreatetruecolor($w$h);
    
// зальём его белым цветом
    
imagefill($dest_img000xFFFFFF);
    
// получим размеры исходного изображения


    // здесь вычисляем размеры, чтобы при масштабировании сохранились
    // 1. Пропорции исходного изображения
    // 2. Исходное изображение полностью помещалось на маленькой копии
    // (не обрезалось)
    
if ($src_ratio>$ratio)
    {
        
$old_h=$size_img[1];
        
$size_img[1]=floor($size_img[0]/$ratio);
        
$old_h=floor($old_h*$h/$size_img[1]);
    }
    else
    {
        
$old_w=$size_img[0];
        
$size_img[0]=floor($size_img[1]*$ratio);
        
$old_w=floor($old_w*$w/$size_img[0]);
    }

    
$src_img imagecreatefromjpeg("large/".$na[$i]);

    
// масштабируем изображение    функцией 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]);
    
imagefilter($dest_img,IMG_FILTER_GRAYSCALE);
    
// в зависимости от типа файла выбирвем функцию сохранения в файл
    
switch ($size_img['mime'])
    {
      case 
'image/jpeg':
            
// сохраняем в файл small.jpg
            
imagejpeg($dest_img,"small/".$na[$i]);
            break;
        case 
'image/gif':
            
// сохраняем в файл small.gif
            
imagejpeg($dest_img,"small/".$na[$i]);
           break;
    }

    
// чистим память от созданных изображений
    
imagedestroy($dest_img);
    
imagedestroy($src_img);
    
$i++;
    }
#for close

}else{
        echo (
"Нет файлов");
        die;
}

?>


Как быть?? где проблема??

   
 
 автор: cheops   (16.03.2006 в 22:18)   письмо автору
 
   для: Hin   (16.03.2006 в 18:05)
 

Не очень понятна фраза " надо почками менять характеристики изображений". Под почками что имеется ввиду?

   
 
 автор: Trianon   (16.03.2006 в 22:20)   письмо автору
 
   для: cheops   (16.03.2006 в 22:18)
 

Под почками имелись в виду пачки, наверное.
А автора спасет set_time_limit ( int seconds ) , Опять же , наверное.

   
 
 автор: Hin   (17.03.2006 в 16:07)   письмо автору
 
   для: Trianon   (16.03.2006 в 22:20)
 

Именно пачками, а что это за set_time_limit ( int seconds ), и где его писать??

   
 
 автор: CrazyAngel   (17.03.2006 в 16:10)   письмо автору
 
   для: Hin   (17.03.2006 в 16:07)
 

Можно в начале

   
 
 автор: Trianon   (17.03.2006 в 16:33)   письмо автору
 
   для: Hin   (17.03.2006 в 16:07)
 

Это стандартная функция php.
Её писать не нужно, она уже написана разработчиками.

   
 
 автор: Hin   (17.03.2006 в 16:38)   письмо автору
 
   для: Trianon   (17.03.2006 в 16:33)
 

И какое значение поставить?? Извените за глупость, я новичек в PHP.

   
 
 автор: Trianon   (17.03.2006 в 16:40)   письмо автору
 
   для: Hin   (17.03.2006 в 16:38)
 

Наверное, судя по тому, что внутри скобок написано seconds, то количество секунд, которое Вы хотите, чтобы скрипт работал.

   
Rambler's Top100
вверх

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