Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку в коде, Копирование/уменьшение изображений 
V
    Опции темы
Рыжий
Дата 17.6.2007, 19:25 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: нет
Всего: 20



Всем привет!
Думал над этой задачей уже долгое время, код то работает, то нет smile Что за странности? Гляньте пожалуйста может я ошибся где...
Действительно уже не знаю что делать :( Надеюсь кто нибудь поможет.
Задача была такой - взять изображения из директории (../admin_image), уменьшить их и скопировать в другую (../admin_image/made).

Код

$files = scandir_('../admin_image');

       $cnt_files=(count($files)-3); // -3 это: . , .. и made

       if($cnt_files==0) echo "Нет изображений для обработки";


       else{

         require 'functions.php';

         for($i=0;$i<count($files);$i++){
            if ($files[$i] != "." && $files[$i] != ".." && $files[$i]!=="made") {

             if(substr(strtolower($files[$i]),-3)!=='jpg') {
                 echo "Файл должен иметь расширение JPG. <br />
                       Файл <b>".$files[$i]."</b> не скопирован!<br /><br />";
                }
                else{

                 $tme=explode(' ',microtime());
                 $tme=explode('.',$tme[0]);
                 $image_add=$tme[1].".jpg";
                 $image_sm_add="sm_".$tme[1].".jpg";

                    echo "<br />Копируем ../admin_image/".$files[$i]." в ../admin_image/made/".$image_add."<br />";
                    if(@copy('../admin_image/'.$files[$i],'../admin_image/made/'.$image_add)){

                     if(!@small('../admin_image/made/'.$image_add , '../admin_image/made/'.$image_sm_add ,500 , 80)) {echo "Не смог создать маленького изображения".$image_sm_add; $err=true;}
                      else echo "Уменьшенная копия создана!";

                      if(!unlink ('../admin_image/'.$files[$i])) {echo "Не смог удалить файл".$files[$i]; $err=true;}                     
                   $image_add=0;
                   $image_sm_add=0;
                 }
                 else echo "Не смог скопировать файл".$image_add."<br/>";
                }


             }
         }
         if(!$err) echo "Все операции успешно завершены!";
       }


Все файлы в директории формата jpg все четко и красиво я проверял.
А вот функция small:

Код

  function small($filename, $smallimage, $w, $h)
  {
    // определим коэффициент сжатия изображения, которое будем генерить
    $ratio = $w/$h;
    // получим размеры исходного изображения
    $size_img = getimagesize($filename);
    // получим коэффициент сжатия исходного изображения
    $src_ratio=$size_img[0]/$size_img[1];

    //Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
    //пропорции исходного изображения
    if ($ratio<$src_ratio or $size_img[1]>$h or $size_img[0]>$w)
    {
      $h = $w/$src_ratio;
    }
    elseif($size_img[1]<$h or $size_img[0]<$w)
    {
      $w = $size_img[0];
      $h = $size_img[1];
    }
    // создадим пустое изображение по заданным размерам
    $dest_img = imagecreatetruecolor($w, $h);

    $src_img = imagecreatefromjpeg($filename);

    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
    imagejpeg($dest_img, $smallimage);

    imagedestroy($dest_img);
    imagedestroy($src_img);
    return true;
  }



В основном останавливается на создании маленького изобржаения. Причем проблемы только на сервере на локалке - все ОК. Что делать - незнаю :( (На сервере стоит PHP 4.3.11 на локалке PHP 5.2.1)


PM MAIL ICQ   Вверх
Рыжий
Дата 20.6.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Помешанный
***


Профиль
Группа: Завсегдатай
Сообщений: 1423
Регистрация: 19.9.2004

Репутация: нет
Всего: 20



Проблема оказалось в "неправильной" установке GD на самом сервере (в phpinfo() говорилось что все стоит и хорошо работает). 
Код оказался рабочим smile 
Вот уж действительно не знаешь откуда ждать проблем...

PS спасибо всем, кто просматривал эту тему smile 

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0764 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.