Как вместо 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)