Как вместо png иконок создавать jpeg иконки

Added by Виталий Старостин 8 months ago

Доброй ночи.

Раньше использовал CKFinder, но у него много проблем.Вот нашел Ваш.Понравилось.

Одна проблема, иконки в формате png.

Проверял в gd-библиотеке : ваша png весит 4-6 кб , а такой же jpeg - 1 кб

В настройках ничего не нашел.

Как ни пытался хитрить в elFinder->_tmb()
не дают мне сделать jpg ( например менял imagepng на imagejpeg)

А моя проблема : директория содержит 2000 маленьких рисунков...)))...ну и соответственно загрузка ну очень долгая...)
Кстати CKFinder такие дела не тянет, постоянно виснет.

Заранее спасибо.


Replies (9)

RE: Как вместо png иконок создавать jpeg иконки - Added by Troex Nevelin 8 months ago

посмотрите в сторону elFinder 2 там в коде кажется всё намного проще:

https://github.com/Studio-42/elFinder/blob/2.x/php/elFinderVolumeDriver.class.php#L2463 (последний параметри и есть формат), можете попробовать сделать опцию по настройке формата миниатюрок.

RE: Как вместо png иконок создавать jpeg иконки - Added by Виталий Старостин 8 months ago

Да,спасибо за "наводку".

Попробую посмотреть elFinder 2х на тему опций tmbFormat и tmbQuality

Когда прибл-но будет стабильная версия 2х?

elFinder 1.2 - Added by Виталий Старостин 8 months ago

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

Была одна проблема.1400 рисунков в одной директории.А перекидывать по разным директориям и изменять связи , лень.

Итак elFinder 1.2 и иконки

Иконки на выходе имеют формат PNG

Обработка изображений ведется 3-мя библиотеками (в новой версии 2х, по моему только 2 библиотеки )

Буду говорить о библиотеке GD

elFinder.class.php -> protected function _tmb($img, $tmb){...}

тупо заменяем imagepng на imagejpeg(можно было добавить как опцию , но так как версия 1.2 уже устаревшая , то не вижу никакого смысла )

//$r = imagepng($_tmb, $tmb, 0);

$r = imagejpeg($_tmb, $tmb,70);

!!! Но на выходе все равно формат PNG ...так и не понял откуда..)))(из-за этого вероятно и торможение всей системы получается.)

За счет данной замены функций мы получаем иконки не по 4-6 кб, а всего по 1-1,4 кб

В принципе выигрыш на лицо (хоть качество слегка похуже) Проигрыш идет когда впервые создаются иконки .На 1400 файлов ушло минут 20.Но когда исправил настройку $_options['tmbAtOnce'] на 40(по умолчанию непонятно почему-то всего 5) дело пошло немного быстрее

Тупо проверял вывод 1400 изображений просто в браузер ( а это фото тканей , у них самих размер (превьюшки ) 4-6 кб.

Загрука происходит почти моментально.Какова причина такого ДОЛГОЙ выгрузки изображений на экран разного рода Finder-ами не совсем понятна

Смотрел и tinymce & ckfinder & elFinder 1.2

Почему решил немного критики?

Потому что в у elFinder 2 по функции GD всё то же самое ,что и в версии 1.2. И на выходе имеем те же самые иконки формата PNG.Непонятна..)

Во второй версии содержимое директорий с файлами, будет в mysql(чего и нет , ни tinymce & ckfinder; что elFinder 2 ставит на уровень выше п),чтение директорий будет 'моментальным'.

Но вот с выводом _tmb (иконок) всё будет то же самое.

Оптимальный вариант получится 1 директория -> 100 рисунков.Но не более!!!!

Тогда придется 'плодить' директории.

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

/*
/*
/*

Я не пытаюсь 'умничать'

Нет ни одного более менее 'нормального' файлового менеджера в мире.

Это и есть , та тема с которой нужно начинать (либо продолжать) думать.

http://www.eldorado-cms.ru/ - спорна.

Нужно сделать elFinder 2 ... 'условно' ...)))... платной ($10-20) ...и положить все силы именно на него , а не на эльдорадо.

Я , например, пишу на CodeIgniter. И с удовольствием отдал бы 500-1000р за каждый сайт в котором бы я использовал нормальный Finder, совмещенный с CI.

Проблема в том, что нормального Finder-а ни у кого нет.

Можно ,забыться от всего , сесть и писать самому.Но тогда , когда делать,поддерживать и раскручивать сайты?Да и js не хочу знать.Значит нужен ещё один сторонник.

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

Так сделайте его коммерческим , прибыльным Вам, а мне - удобным , без головной боли.

PS . Как библиотеку в CodeIgniter я его вставить не могу. А потому мне всё время (каждый сайт....))) ...какой ужас ) нужно будет делать Доступ на Сайт и Доступ elFinder отдельно.А так как я пишу в CodeIgniter (я забыл как подключаться к db в php) мне нужно будет писать особый....выделенный доступ к elFinder....)))...страшно..смысл теряется..проще написать свой elFinder только c малым количеством js и ajax(из-за не знания и не желания знать это).сkFinder ,кстати, был интегрирован в CodeIgneter..но тоже не с радостью был интегрирован.

Мне кажется...)))..выбор НЕ правильный.
Нужно другого "осла" использовать.
Вы выбрали бесплатный elfider как зазывалово на коммерческую эльдорадо, а надо сделать наоборот : платный elfinder , и как зазывалово - бесплатная эльдорадо.Тем более что эльдорадо намного более трудоемкий и объемный продукт, чем elFinder.

PS2.Если говорить о tinymce & ckfinder , то они вынужденно разделили текстовый редактор и файловый манагер...
Потому как текстовый редактор бесплатно, а файловый менеджер - платно.Текстовый -зазывалово, файловый - деньги.

Если Вы выпускаете бесплатный продукт, на фига копировать что делают tinymce & ckfinder,зачем нужно ,как пример, промежуточное окно между текстовым менеджером и файловым ????

Размышления а файловых менеджерах - Added by Виталий Старостин 8 months ago

А если говорить вообще...

то функции файлового менеджера должны быть соооовсем другие.Идея другая.Ядро другое.

Юзеру не нужно смотреть что находится в реале на сервере.Он хочет найти картинку.

Картинки на сайтах не существуют сами по себе .Они существуют в связях.Большая , маленькая, иконка и т.д.

Фильтры нужны по поиску файлов и их связей , а не реальные директории .Мини сайт поиска по файлам.

А та mysql одна-единственная таблица которая собирается существовать в версии 2х, вообще не способна ни на что , кроме указания родителя и потомка.

Зачем выводить в директории файлового менеджера и сам рисунок и его , например , small и ico версии?

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

Пародия , хоть может быть и улучшенная, на ckfinder and mcimagemanager, путь не правильный.Надо чтоб революция.Будет революция - будут деньги.Будут деньги - будет развитие продукта.

А вместо эльдорадо..."товарищи от дизайна " всё равно втюхают юзеру мутную joomla или бесполезно-помпезный bitrix с кучей макулатурного хелпа на 3 года изучения, либо 5 лет уже не изменяющуюся abocms.

Эльдорадо само отказалось от своего elFinder http://demo.eldorado-cms.ru/test/galery/i_edit/3/110/

Я,собственно,странный человек.Почти нигде никаких постов моих нет.Ваш продукт заинтересовал,и радостно что не америкосы, потому и написал.Понимания вокруг очень мало.И cms пытаюсь создать какую-то странную , что-то среднее между инстинктивно-понятным phpmyadmin-ом и обычными cms.Потому Ваш ответ будет важен для меня.Важен в том смысле, неужели я вечно ошибаюсь?Неужели все двигаются правильно, а я как 'дэбил' иду в то место ,которого нет?....)))))

Да и не cms, а простую админку,в которой можно ОЧЕНЬ быстро изменить/создать объект и ,что не менее главное,его свойства....будь-то совйства новостей,продуктов или просто статей.Только вот одна проблема...файлово-текстовый манагер...)))).

Нету манагера.

RE: Как вместо png иконок создавать jpeg иконки - Added by Dmitry Levashov 8 months ago

Не смог до конца понять основную идею вашего потока мыслей...
Для начала - забудьте про эльдорадо cms в контексте elfinder - он из нее вырос, но уже давно является самостоятельным и самодостаточным продуктом.

Юзеру не нужно смотреть что находится в реале на сервере.Он хочет найти картинку.

Очень интересная идея! Нечто подобное появилось в finder.app в macos 1.7.
Я над этим подумаю... но скорее это будет дополнительный вид, а не смена концепции

Пародия , хоть может быть и улучшенная, на ckfinder and mcimagemanager, путь не правильный.

Глупость, с моей точки зрения. Просто посмотрите на десктопные фм...

Как библиотеку в CodeIgniter я его вставить не могу.

Почему? Не хватает опыта?
В других фреймворках/цмс могут. Вон на друпал посмотрите.
Конечно ветка 1-х не очень удачна в этом плане, но 2-х писалась именно с таким прицелом и отзывы по ее интеграции полностью положительные.
А авторизация и прочее - это не дело фс, а системы в которой он работает.

Если вы хотите какие-то "особые" изменения/дополнения в elfinder - можете заказать нам разработку (платно), как и поступает большинство желающих.

Делать продукт (условно) платным мы не будем - не обсуждается, но пожертвования с вашей стороны могут добавить нам морального стимула не останавливаться на достигнутом :)

RE: Как вместо png иконок создавать jpeg иконки - Added by Dmitry Levashov 8 months ago

Насчет формата превьюшек - созадйте issue чтобы мы не забыли - https://github.com/Studio-42/elFinder/issues

RE: Как вместо png иконок создавать jpeg иконки - Added by Dmitry Levashov 8 months ago

Во второй версии содержимое директорий с файлами, будет в mysql

А вот и нет! :) Вы ничего не поняли.
elFinder 2-x может работать с разными хранилищами - одно из них mysql. Но при работе с локальной фс, никакая бд не используется.
Возможны варианты смешаных хранилишь - например в друпал такое используется. Сейчас интегрирую elfinder c таким гибридным хранилищем для одной французской компании.
Так же elfinder сможет работать с ftp/webdav и тд - если для этих хранилищь напишут драйвера

RE: Как вместо png иконок создавать jpeg иконки - Added by Dmitry Levashov 8 months ago

Картинки на сайтах не существуют сами по себе .Они существуют в связях.Большая , маленькая, иконка и т.д

А вот это не волнует никого, кроме разработчиков конкретной cms и они должны решать эту проблему :)

RE: Как вместо png иконок создавать jpeg иконки - Added by Дмитрий Дмитр 7 months ago

В файле elFinderVolumeDriver.class.php, изменить:

    
    /**
     * Return thumbnail file name for required file
     *
     * @param  string  $path  file path
     * @return string
     * @author Dmitry (dio) Levashov
     **/
    protected function tmbname($path) {
        if ($this->_isLink($path) && ($link = $this->_readlink($path))) {
            $path = $link;
        }

        $mime = $this->mimetype($path);
        switch($mime){
        case 'image/gif' :
            $ext = '.gif';
            break;
        case 'image/png' :
            $ext = '.png';
            break;
        case 'image/jpeg' :
            $ext = '.jpg';
            break;
        }

        return md5($path).$ext;
    }

(1-9/9)