MIDAV.RU

MIDAV.RU

Учусь делать сайты в свободное время .

konkoord

Дата регистрации: 2013-03-28 18:13:36

Ник: konkoord

Комментариев: 4

Сайт: http://www.3dstudia.com

Комментарии

  • Добавляем вывод рисунка в модуль Новости , Joomla 2.5
    2013-04-17 15:49:17

    Вот нашел про обрезку изображений, но ни чего не понятно, как его применить для модуля и как сделать авто ресайз в зависимости от размера шаблона (если шаблон динамический

    //$image - исходное изображение, созданное функцией imagecreatefrompng или подобными

    //$width - ширина уменьшенного изображения

    //$height - высота уменьшенного изображения

    function GetResampledImage($image, $width, $height)

    {

    //Сохраняем длину и ширину исходного изображения

    $widthOriginal = imagesx($image);

    $heightOriginal = imagesy($image);

    //Объявляем переменные для размеров пропорционально сжатого изображения (без обрезки)

    //Изначально приравниваем их к размерам уменьшенного изображения

    $widthSampled = $width ;

    $heightSampled = $height;

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

    $aspect = $height / (float)$width;

    $aspectOriginal = $heightOriginal / (float)$widthOriginal;

    //Вычисляем соотношение коэффициентов

    $aspectAspect = $aspect / $aspectOriginal;

    //Объявляем переменные для смещения изображения (нужно для обрезки)

    $dX = 0;

    $dY = 0;

    //Вычисляем размеры пропорционально сжатого изображения (без обрезки) и смещение изображения

    if($aspectAspect > 1)

    {

    $widthSampled *= $aspectAspect;

    $dX = ($widthSampled - $width) / 2;

    }

    else

    {

    $heightSampled /= $aspectAspect;

    $dY = ($heightSampled - $height) / 2;

    }

    //Создаём прозрачное изображение для вывода уменьшенного изображения

    $imageResult = imagecreatetruecolor($width, $height);

    imagesavealpha($imageResult, true);

    imagefill($imageResult, 0, 0, imagecolorallocatealpha($imageResult, 0, 0, 0, 127));

    //Создаём прозрачное изображение для хранения пропорционально сжатого изображения

    $imageSampled = imagecreatetruecolor($widthSampled, $heightSampled);

    imagesavealpha($imageSampled, true);

    imagefill($imageSampled, 0, 0, imagecolorallocatealpha($imageSampled, 0, 0, 0, 127));

    //Пропорционально сжимаем исходное изображение

    imagecopyresampled($imageSampled, $image, 0, 0, 0, 0, $widthSampled, $heightSampled, $widthOriginal, $heightOriginal);

    //Обрезаем пропорционально сжатое изображение

    imagecopy($imageResult, $imageSampled, 0, 0, $dX, $dY, $widthSampled, $heightSampled);

    return $imageResult;

    }

  • Добавляем вывод рисунка в модуль Новости , Joomla 2.5
    2013-04-13 12:49:14

    Вадим, если вы не против, я попытаюсь развить тему? все получилось как вы сказали, давайте теперь расширим функционал, а именно: сделаем авто обрезку изображений превью до нужного разрешения, что бы не загружались полные изображения.

    И еще одно предложение, так же для самообразования: как добавить в меню настройки шаблона пару кнопок, и вставить в существующий код переменные, что бы например в одном модуле высвечивались только картинки, в другом картинки с датой и вступительном текстом. если вас конечно не затруднит.

    Готовый код в интернете найти можно, но только здесь всех понятней объяснение, что поможет нубам лучше понимать смыслы происходящих внутри процессов

  • Добавляем вывод рисунка в модуль Новости , Joomla 2.5
    2013-04-10 23:49:06

    огромное спасибо, все получилось, и дало немного представления как все это устроено. пишите больше, очень полезно

  • Добавляем вывод рисунка в модуль Новости , Joomla 2.5
    2013-03-28 18:16:00

    Вадим, спасибо за статью!!! Могли бы вы выложить полный код файла default.php для неопытных пользователей - и пошагово сказать где что поменять - прописать, а то многим (в том числе и мне) не понятно, например - если создать папку у себя в шаблоне и скопировать default.php туда, то как туда будет система обращаться - ведь нужно же путь где то прописать к этому файлу. вообщем много людей только начинающих, очень прошу, распишите немножко поподробней, без этого не получается. Спасибо. (ps.вопрос повторю не из за спама, а зарегившись просто)