Показано с 1 по 6 из 6

Тема: GD

  1. #1

    Регистрация
    13.01.2005
    Адрес
    Москва
    Сообщений
    15

    GD

    Меня не раз спрашивали, да и на форумах видел: "почему не работает такой-то пример, связанный с использованием библиотеки GD в пхп"...
    Я удивлялся как не работает? все в норме... (была GD 1.6.2)
    Теперь я и сам столкнулся с пдобной траблой (на серванте GD 2.0.28) и мой пример там не работает

    Код:
    <?php
    
    // Content type
    
    header('Content-type: image/jpeg');
    
    
    
    // Get new sizes
    
    list($width, $height) = getimagesize($filename);
    
    $newwidth = $width/8;
    
    $newheight = $height/8;
    
    
    
    // Load
    
    $source = imagecreatefromjpeg($filename);
    
    $thumb = imagecreate($newwidth, $newheight);
    
    
    
    // Resize
    
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
    
    
    
    // Output
    
    imagejpeg($thumb, null, 100);
    
    
    
    ImageDestroy($source);
    
    ImageDestroy($thumb);
    
    ?>
    Внимание вопрос уважаемые знатоки:
    Почему не работает?..

  2. #2

    Регистрация
    31.03.2004
    Адрес
    г.Киев (Украина)
    Сообщений
    102
    потому что в последних GD библиотеках, ну как минимум идущих в комплекте с PHP, поддержка JPEG и GIF отключена остался один PNG, т.к. на выше упомянтые уже замутили патенты, так что там надо платить ... или тип того

  3. #3

    Регистрация
    13.01.2005
    Адрес
    Москва
    Сообщений
    15
    lunux, да нет не в этом дело...... все есть и джипеги и гиф и пнг....... оказывается у меня джипеги были какие-то покоцанные..... этот скрипт рабочий вот из-за GD 2 не все джипеги есть, атолько избранные


    После долгих раздумий как справиться с этой напастью - привожу свое решение, может кто-то тоже столкнется с этой траблой........

    написал следующий код:

    Код:
    <?php
    
    ini_set("max_execution_time","3000000"); 
    
    header('Content-type: image/jpeg');
    
    //пробегаемся по папке...
    
    $dirname = "dirname"; // сюда пишем название фолдера!
    
    
    
    //пробегаемся по папке...
    
     *function guide($dirname)
    
     *{
    
     *//begin
    
     *$zz = opendir($dirname);
    
     *while (gettype($file = readdir($zz)) != boolean) *
    
     *****{
    
     *****settype($file,string);
    
     *****if($file != ".." && $file != ".")
    
     * *{
    
     * *if (is_dir("$dirname/$file"))
    
     * *****{
    
     * *****
    
     * *****$dirname2=$dirname.'/'.$file;
    
     * * * * * * *$zzz = opendir($dirname2); *
    
     * * * * * * * while (gettype($file2 = readdir($zzz))!=boolean) *****
    
     * * * * * * * *{
    
     * * * * * * * * *if($file2 != ".." && $file2 != "." && !is_dir("$dirname2/$file2"))
    
     * * * * * * *{
    
     * * *****$filename = $dirname2."/".$file2;
    
     * * *****// Load
    
     * * *****$thumb = imagecreate(1024,768);
    
     * * *****$source = imagecreatefromjpeg($filename);
    
     * * *****// Resize
    
     * * *****imagecopyresized($thumb, $source, 0, 0, 0, 0,1024,768,1024,768);
    
     * * *****// Output
    
     * * *****$newurl=$dirname2."/".$file2;
    
     * * *****imagejpeg($thumb,"$newurl");
    
     * * * *}
    
     * * * * * * * * * }
    
     * * *}
    
     * *}
    
     * *}
    
     *****
    
     *//end function!!!
    
     *}
    
    
    
     * *guide($dirname);
    
     *
    
    ?>
    прошу прощение за кривость кода... писал за пару мин.....

    Сделано функцией для того чтобы можно было использовать в дальнейшем функцию в функции (не помню как это по научному называется....)

    Код делает следующее: берет из проходится по всем папкам которые лежат в папке dirname берет из них джипеги и перезаписывает....
    можно испльзовать функцию imagecreate для облегчения файлов, а можно и imagecreatetruecolor - для сохранения качества........

    я натравил этот код на всю свою папку с обоями - код работал минут 10. Забыл сказать - операцию проводил на локальном компе, где старая GD 1 и с ней все прекрасно работает.... после этого залил все файлы на сервант заново где стоит GВ 2. Все файлы стали восприниматься этой библиотекой на ура!.......

    спасибо за внимание и всем тем кто пытался помочь....

    ЗЫ Самая трабальная для меня эта задачка была...... ушло 2 дня на ее решение....

  4. #4

    Регистрация
    11.09.2004
    Сообщений
    78
    Сделано функцией для того чтобы можно было использовать в дальнейшем функцию в функции (не помню как это по научному называется....) *
    Рекурсия 8)

  5. #5

    Регистрация
    13.01.2005
    Адрес
    Москва
    Сообщений
    15
    bmn, точно.... рюхаешь....

  6. #6

    Регистрация
    29.03.2005
    Сообщений
    3
    lunux, я историю про патент тоже слышал

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •