Template Toolkit: Модули: Template::Plugin::Image

Template Toolkit

(русская редакция)

[ Пособия ] [ Руководство ] [ Модули ] [ Библиотеки ] [ Утилиты ] [ Вопросы ] [ Релиз ] [ Perl-ресурсы ] Форум ]
 
Поиск
Template Toolkit | Модули | Template::Plugin::Image

Template::Plugin::Image

[ ◄ Template::Plugin::HTML ] [ Template::Plugin::Iterator ► ]
Плагин для получения размеров картинок.

Оглавление

ОБЗОР

Индекс ] [ Модули ] [ Наверх ]

    [% USE Image(filename) %]
    [% Image.width %]
    [% Image.height %]
    [% Image.size.join(', ') %]
    [% Image.attr %]
    [% Image.tag %]

ОПИСАНИЕ

Индекс ] [ Модули ] [ Наверх ]

Плагин предоставляет интерфейс к модулям Image::Info или Image::Size для определения размеров графических файлов.

В качестве имени плагина можно использовать 'Image' или 'image'. Созданный объект плагина в дальнейшем будет иметь такое же имя. Имя файла картинки необходимо указать в качестве позиционного или именованного аргумента.

    [% # все эти варианты верны, выбирайте на свой вкус %]
    [% USE Image('foo.gif') %]
    [% USE image('bar.gif') %]
    [% USE Image 'ping.gif' %]
    [% USE image(name='baz.gif') %]
    [% USE Image name='pong.gif' %]

Вы также можете выбрать альтернативное имя для объекта плагина Image.

    [% USE img1 = image 'foo.gif' %]
    [% USE img2 = image 'bar.gif' %]

Методы 'width' и 'height' возвращают соответственно ширину и высоту картинки. Метод 'size' возвращает ссылку на 2-элементный массив, содержащий ширину и высоту.

    [% USE image 'foo.gif' %]
    ширина: [% image.width %]
    высота: [% image.height %]
    размер: [% image.size.join(', ') %]

Метод 'attr' возвращает ширину и высоту в виде аттрибутов HTML/XML.

    [% USE image 'foo.gif' %]
    [% image.attr %]

Типичный вывод:

    width="60" height="20"

Метод 'tag' возвращает полный XHTML тег, ссылающийся на картинку.

    [% USE image 'foo.gif' %]
    [% image.tag %]

Типичный вывод:

    <img src="foo.gif" width="60" height="20" />

Можно передать дополнительные аттрибуты, которые необходимо добавить к XHTML тегу.

    [% USE image 'foo.gif' %]
    [% image.tag(border=0, class="logo") %]

Типичный вывод:

    <img src="foo.gif" width="60" height="20" border="0" class="logo" />

Метод 'modtime' возвращает время модификации (в оригинальной документации указанно ctime, но метод в действительности возвращает mtime, что впрочем согласуется с названием самого метода - примечание переводчика) файла в виде, удобном для использования вместе с date.format:

    [% USE image 'foo.gif' %]
    [% USE date %]
    [% date.format(image.modtime, "%B, %e %Y") %]

ПЕРЕХВАТ ОШИБОК

Индекс ] [ Модули ] [ Наверх ]

Если файл картинки не найден перечисленные методы сгенерируют исключение 'Image'. Можно включить вызовы этих методов в блок TRY...CATCH и перехватить любые потенциальные ошибки.

    [% TRY;
         image.width;
       CATCH;
         error;      # выводим ошибку
       END
    %]

ИСПОЛЬЗОВАНИЕ Image::Info

Индекс ] [ Модули ] [ Наверх ]

В настоящее время, плагин пытается загрузить модуль Image::Info в предпочтение к Image::Size. Если Image::Info найден, в дополнение к 'size', 'width', 'height', 'attr' и 'tag' доступны еще несколько методов. Эти дополнительные методы названы в честь элементов: которые Image::Info получает из самой картинки (более подробно смотри в документации к Image::Info) - типы доступных методов зависят от типа картинки. Среди дополнительных методов всегда доступны следующие:

  • file_media_type

    MIME тип, соответствующий формату указанного файла. Соответствующее значение строка вида: "image/png" или "image/jpeg".

  • file_ext

    Предпочтительное расширение для формата указанного файла. Значение - 3-буквенная строка в нижнем регистре, как "png", "jpg".

  • color_type

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

      Gray
      GrayA
      RGB
      RGBA
      CMYK
      YCbCr
      CIELab

    Перед этими названиями также может встретиться приставка "Indexed-", если картинка составлена из индексов палитры. Скорее всего из перечисленных может встретиться только "Indexed-RGB".

    (Это аналогично полю TIFF PhotometricInterpretation, но это название оказалось слишком длинным, поэтому мы вместо него мы использовали термин из PNG.)

  • resolution

    Значение этого поля обычно дает физический размер картинки на экране или бумаге. Если единица измерения пропущена это поле характеризует квадратность (squareness) пикселей в картинке.

    Синтаксис это поля таков:

       <res> <unit>
       <xres> "/" <yres> <unit>
       <xres> "/" <yres>

    Поля <res>, <xres> и <yres> - числа. <unit> строка вида 'dpi', 'dpm' или 'dpcm' (обозначающих "точек(dots) на(per) дюйм(inch)/сантиметр(cm)/метр(meter)).

  • SamplesPerPixel

    Это поле указывает сколько в картинке есть каналов. Для некоторых графических форматов это число может быть больше числа полученного из 'color_type'.

  • BitsPerSample

    Поле содержит число битов, используемых для кодирования каждого из каналов. Значение поля - ссылка на массив, содержащий числа. Количество элементов массива должно быть равно 'SamplesPerPixel'.

  • Comment

    Текстовые комментарии, найденные в файле. Значение - ссылка на массив, если найдено несколько комментариев.

  • Interlace

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

  • Compression

    Используемый алгоритм сжатия.

  • Gamma

    Число.

АВТОР

Индекс ] [ Модули ] [ Наверх ]

Энди Уардли (Andy Wardley <abw@andywardley.com>)

http://www.andywardley.com/

ВЕРСИЯ

Индекс ] [ Модули ] [ Наверх ]

1.14, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004.

АВТОРСКИЕ ПРАВА

Индекс ] [ Модули ] [ Наверх ]

  Copyright (C) 1996-2004 Andy Wardley.  All Rights Reserved.
  Copyright (C) 1998-2002 Canon Research Centre Europe Ltd.

Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl.

СМОТРИ ТАКЖЕ

Индекс ] [ Модули ] [ Наверх ]