Вопрос № 126247: Здравствуйте уважаемые. Возможно ли сглаживание пикселей при помощи php? Т.е., например, дана картинка размерами 1024*768. Надо сделать её preview (шириной 128;высотой (относительным изменением ширины)).Обычными imageCopyResized получаетяс не очень-т...Вопрос № 126343: Добрый день!
Помогите решить сложную для меня задачу.
Необходимо сделать меню навигации по сайту с неограниченным количеством вложенных подкатегорий, причем чтобы на странице отображались все категории первого уровня, категории второго - при ...
Вопрос № 126.247
Здравствуйте уважаемые. Возможно ли сглаживание пикселей при помощи php? Т.е., например, дана картинка размерами 1024*768. Надо сделать её preview (шириной 128;высотой (относительным изменением ширины)).Обычными imageCopyResized получаетяс не очень-то хорошо. Подскажите как решить эту проблему?
Отвечает: Товарищ Бородин / Borodul
Здравствуйте, Khalafov Rashad!
Можно попробовать сделать так, как на love.mail.ru - там превьюшка вырезается из уменьшенной картинки. Чтобы стало понятно - фотографию-оригинал уменьшают и из уменьшенной копии вырезают кусочек. Этот кусочек и есть превьюшка. Искажение в данном случае меньше, соответственно, проблема сглаживания пикселей стоит не так остро.
Кроме того, в PHP есть функция ImageCopyResampled() с примерно таким же набором параметров(их и в этой функции тоже около десятка). Однако жмет картинки она с лучшим качеством, насколько я знаю(а я знаю:) ).
С уважением, Товарищ Бородин / Borodul
--------- - Я вчера коньяк пил, 25 лет выдержки, вот это выдержка! - Ерунда! Вот я вчера выпил 5 литров пива и поехал на автобусе до Иваново без остановок. Вот это выдержка...
Ответ отправил: Товарищ Бородин / Borodul (статус: Профессионал) Россия, Новосибирск Тел.: +7-923-245-3366 ICQ: 346988855 ---- Ответ отправлен: 06.03.2008, 18:18
Вопрос № 126.343
Добрый день!
Помогите решить сложную для меня задачу.
Необходимо сделать меню навигации по сайту с неограниченным количеством вложенных подкатегорий, причем чтобы на странице отображались все категории первого уровня, категории второго - при нажатии на первую категорию, категории третьего - при нажатии на вторую и т.д.. Все данные берутся из БД на основе одной переменной $name(название страницы). Структура следующая (единственное что получилось реализовать):
данные об меню первого, второго и третьего уровня хранятся в отдельных таблицах:
menu, menu_child, menu_child_2 со структурой:
id_menu, name_menu, name_menu_site
Также существует таблица документов:
doc со структурой:
id_doc, name_doc, title, name_menu
Название страницы для меню в таблице doc соответствует названию самого меню (например при нажатии на ссылку меню news - откроется документ name_doc=news.).
Сам скрипт в приложении.
Все работает и можно реализовать таким способом большую вложенность, но сами понимаете что программный код получится очень большим и количество запросов будет просто огромным.
Если есть какой-нибудь способ попроще (на PHP и MySQL), пожалуйста подскажите.
Приложение:
Отправлен: 07.03.2008, 14:07
Вопрос задал: Armaniden (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Иван Сергеевич
Здравствуйте, Armaniden! Конечно, есть способ - это иерархические БД. Каждый пункт меню хранит ИД родительского меню (если это корневой элемент, то ИД=0). Таким образом, получим ОДНУ таблицу на неограниченное количество уровней вложенности меню: table_menu(menu_id, menu_title, menu_link, menu_parent, priority) Таблица документов Вам не нужна - Вы храните только линк на страницу (поле menu_link) При клике по меню с ИД=n выполняем следующий запрос к БД: SELECT * FROM table_menu WHERE menu_parent
= $n ORDER BY priority Если необходимо выбрать коренные пункты, то $n=0 Поле priority (приоритет) я добавил, чтобы была возможность упорядочить последовательность пунктов меню. Если не сделать, то список меню упорядочится по умолчанию (обычно в той последовательности, как они были введены в БД).
Далее. Чтобы не загружать все меню сразу, а только главные пункты, можно использовать технологию Ajax. Дочерние меню будут подгружаться по клику. Как реализо
вать это - описано в вопросе №126328 (ссылка в приложении)
Приложение:
Ответ отправил: Иван Сергеевич (статус: 3-ий класс)
Ответ отправлен: 07.03.2008, 15:07