PHP-код для генерации иконок - PullRequest
5 голосов
/ 30 ноября 2010

В настоящее время я работаю над огромным внутренним приложением в Zend Framework. Много раз я заканчивал тем, что использовал неправильный значок для какого-либо объекта или действия.

Мой вопрос Есть ли PHP-код для автоматического создания иконок ????

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

  • Объект (пользователь, категория, продукт, RSS и т. Д.)
  • Действие (добавить, отредактировать, удалить, обновить и т. Д.)

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

Код для генерации иконки для удаления пользователя размером 32x32 и удаления иконки в правом нижнем углу иконки.

$icon = new Icon();
$icon->object('user')->action('delete');
$icon->action_align('right')->action_valign('bottom');
$icon->action_height(10)->action_width(10);
$icon->height(32)->width(32);
$icon->create();

Это просто пример того, как мы можем создать иконку, которая никогда не выходила раньше.

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Эй, я могу предложить вам создать файлер, как этот:

Фильтр, который создает миниатюру изображения

<?php
/**
 * Class for thumbnailing images
 *
 * @author Michał Bachowski (michal@bachowski.pl)
 * @package JPL
 * @subpackage   Jpl_Filter
 * @version 0.1
 * @uses Zend_Filter_Interface, IMagick
 * @license   http://framework.zend.com/license/new-bsd     New BSD License
 */
class Jpl_Filter_File_Image_Thumbnail {
    /**
     * Thumbnail width
     *
     * @var integer
     */
    protected $_width   = null;
    /**
     * Thumbnail height
     *
     * @var integer
     */
    protected $_height  = null;
    /**
     * Information whether to keep ratio or not while making thumbnail
     *
     * @var bool
     */
    protected $_bestFit = true;
    /**
     * Information whether crop image or just to resize it
     *
     * @var bool
     */
    protected $_crop    = false;
    /**
     * Method sets destination thumbnail width
     *
     * @param  integer  $width
     * @return Jpl_Filter_File_Image_Thumbnail
     */
    public function setWidth( $width = null ) {
        $this->_width = (int) $width;
        return $this;
    }
    /**
     * Method sets destination thumbnail height
     *
     * @param  integer  $height
     * @return Jpl_Filter_File_Image_Thumbnail
     */
    public function setHeight( $height = null ) {
        $this->_height = (int) $height;
        return $this;
    }
    /**
     * Method changes behaviour of filter.
     * Filter will resize image exactly to given dimensions (false)
     * or resize image to fit given dimensions but keep original dimension ratio (true).
     * Setting bestFit to true both dimensions are become mandatory!
     *
     * @param  bool     $bestFit
     * @return Jpl_Filter_File_Image_Thumbnail
     */
    public function setBestFit( $bestFit = false ) {
        $this->_bestFit = (bool) $bestFit;
        return $this;
    }
    /**
     * Method changes behaviour of filter.
     * Filter either just resizes image (false)
     * or resizes with keeping ratio and crop to best fit given width and height (true)
     * If true ommits self::$_bestFit attribute!
     *
     * @param  bool $crop
     * @return Jpl_Filter_File_Image_Thumbnail
     */
    public function setCrop( $crop = false ) {
        $this->_crop = (bool) $crop;
        return $this;
    }
    /**
     * Method filters given file - makes thumb
     *
     * @param  string   $file   path to file
     * @return string   name of file
     */
    public function filter( $file ) {
        $im = new IMagick( $file );
        if ( $this->_crop ) {
            $im->cropThumbnailImage(
                $this->_width,
                $this->_height
            );
        } else {
            $im->thumbnailImage(
                $this->_width,
                $this->_height,
                $this->_bestFit
            );
        }
        $im->writeImage( $file );
    }
}
2 голосов
/ 30 ноября 2010

Вы можете использовать GD library для экспорта изображений, не в формате .ico, но .bmp будет в порядке.С Imagick кажется, что вы можете делать напрямую .ico файлы.

...