Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
ВнизRegion Maker - Окна Произвольной Формы | Создаём Утилиту Найти похожие ветки
← →
DevilDevil © (2006-03-29 17:47) [40]вах. обявился новый модератор. всем падать ниц!
Сударь, а вы в курсе, что можно читать/писать уже готовые регионы? если уж вам так охота иметь маленькие размеры, сжимайте эти регионы любым LZ-алгоритмом. будут те же 1-2 кб. я, помнится, лет эдак с 5 назад это написал за пол-часа.
так вот, ваша же цитата: "Не надо засорять форум." "компрене ву?" (ц)
Размер региона = 32 + 16 * количество прямоугольников. В сложных регионах
таких прямоугольников ОЧЕНЬ МНОГО, и, даже сжатые будут занимать больше 3кб.
Кроме того к exe прилинкуется 26кб (модуль zlib). Эффективность снижается.
Вообще алгоритм сжатия алгоритму сжатия - рознь. В данном случае,
словарный алгоритм неэффективен. Эффективны методы сжатия 2цветных
изображений, например, CCITT Group 3. Он отлично сжимает тексты (тексты-рисунки).
Учитывая специфику регионов, можно создать ещё более эффективный комрессор.
Именно этим я и занялся, взяв за основу половину идей CCITT Group 3. Поэтому степень
сжатия так высока (в 20 раз).
Хотя не отрицаю, твоя идея (была) более воплотима и заслуживает внимания. Если будет время,
попробуй сжать мой регион - интересен результат. Кстати, я попробовал дожать мой
файл-регион zlib-ом, получилось: 2 900 байт -->> 1 869 байт. Неплохой результат! Но, опять таки
не эффективен, т.к. модуль zlib добавляет 26Кб.
← →
DevilDevil © (2006-03-29 17:57) [41]автору: не переоценивайте значимость регионов, от них прок только на Win9x. Много ли из присутствующих людей пишет программы под Win98 и со скинабельным интерфейсом?
Вот пример, где создается форма "непрямоугольная" (кстати, открытые исходники) - http://kladovka.net.ru/index.cgi?pid=list&rid=318
если сможете сделать такую же регионами - поставлю памятник:) Вообще, не надо равняться на большинство факов из интернета, в которых "непрямоугольные" окна обычно регионами создаются.
использование для создания регионов отдельной библиотеки - непозволительная роскошь (даже если там и будут реализованы механизмы сохранения/загрузки), кстати, сколько она сейчас уже весит?
А если нужен будет resize для окна - это предусмотренно?
Посмотел, ВЕЩЬ!
Однако, не сомневаюсь, что необходимость использования регионов не исчезнет! Размер модуля разкодировки - меньше 1кб. Библиотека кодировки занимает 50кб. Со временем, скорость кодировки увеличу раз в 30, а библиотека будет занимать 15-20 кб (всё пока в зачаточном состоянии, перепишу под KOL, потом под WinAPI)
Ссылка на архив, надеюсь, появится несёдня-завтра.
← →
Ketmar © (2006-03-29 18:06) [42]>DevilDevil © (29.03.06 17:47) [40]
"модуль zlib". а других нет.
декомпрессор от apLib, например, занимает меньше 200 байтиков. итого: ~160 байт на декомпрессор и байт 20 на установку региона. плюс сам регион.
примерно те же результаты для WDXPack (килобайта 2-3 компрессор, байт 160 декомпрессор).
регион можно, опять же, сохранять не только одним способом.
я к чему: зачем велосипед изобретать?
← →
antonn © (2006-03-29 18:06) [43]где еще используются регионы (уж прости мое незнание)?
уверен, что где используются, не только на формах...
← →
oldman © (2006-03-29 18:22) [44]Бред!!!
> Все мы когда-нибудь видели симпатичные приложения нестандартной
> (непрямоугольной) формы. Согласитесь, подобные приложения
> намного привлекательнее обычных (прямоугольных).
А вот и не соглашусь!!!
← →
Думкин © (2006-03-30 05:43) [45]Перечитываю Йордана про Камикадзе. В свете вчерашнего ночного бдения над его книгой зОбавно прочитать:
> DevilDevil © (29.03.06 17:57) [41]
очень, знаете ли. :о)
← →
DevilDevil © (2006-03-31 01:52) [46]"модуль zlib". а других нет.
декомпрессор от apLib, например, занимает меньше 200 байтиков. итого: ~160 байт на декомпрессор и байт 20 на установку региона. плюс сам регион.
примерно те же результаты для WDXPack (килобайта 2-3 компрессор, байт 160 декомпрессор).
регион можно, опять же, сохранять не только одним способом.
я к чему: зачем велосипед изобретать?
У меня остаётся надежда, что ты осознаешь более высокую эффективность
моего метода сжатия. Ни один словарный метод не будет эффективнее метода,
специально предназначенного для кодирования какого-либо определённого типа
данных. Неужели не веришь? Ладно, доказываю на практике...
Рассмотрим на моём регионе, который я зажал в 2 900, а потом ещё в 1 869 байт (!)
Занимает он 14 608 байт. Зажал zlib-ом, получилось 4 801 байт. Отличный результат!
Подозреваю, что эффективность твоего "мили" модуля-архиватора меньше, чем у zlib.
Рад буду ошибиться.
Получается, во сколько мой+LZ алгоритм эффективнее? Правильно, в 2.5 раза!
В конце концов, не исчезает необходимость удобной утилиты, вопрос в алгоритме сжатия.
Нет, я не отрицаю, ты поступил правильно - в кротчайшие сроки очень просто реализовал
требуемую задачу. Возможно, если бы на момент начала увлечения этой штукой я знал
о ExtCreateRegion, GetRegionData и хотя бы Zlib, я бы даже не начинал заниматься
разработкой алгоритма. А раз уж разработан эффективный алгоритм, почему бы его не
использовать?
Кстати, будь добр, пришли, пожалуйста на devil_home@mail.ru свои LZ модули.
Если всё так хорошо, как описал ты, я включу дополнительное сжатие в утилиту
← →
DevilDevil © (2006-03-31 01:54) [47]
Здравствуйте, МАСТЕРА!
Свершилось долгожданное!
Проект Region Maker теперь можно скачать: http://kerkzone.net/files/RegionMaker.zip
Kerk, спасибо тебе ещё раз!
Вы без проблем можете использовать эту утилиту в своих целях.
Однако (!), структура файла будет изменена! Поэтому текущие rgn файлы
абсолютно несовместимы с rgn файлами конечного варианта программы.
Момент создания конечного варианта обязательно будет освещён на форуме.
ВЕСЬ ВОПРОС БЫЛ ЗАДАН главным образом с одной целью:
найти человека, который будет усовершенствовать эту этилиту,
добавив возможность графического редактирования, Viewer-а,
и возможность (в зависимости от различных параметров) выделять
регион из других графических форматов.
Попробуйте сохранить растр в jpeg, потом обратно, а уже из полученного растра
получить регион. Тогда вы поймёте, зачем нужна возможность "выделения".
Конечно, я мог бы реализовать всё самостоятельно. Но, очень сложно делать
всё это одному, - боюсь, утилита может так и не выйти в свет.
Уважаемые Мастера!
Прошу вас перестать оставлять заметки на отвлечённые или нечёткие темы.
Пожалуйста, отвечайте только на текущий вопрос (см выше). В остальных
случаях, не пишите или открывайте новую тему на форуме. К тем, кто не
согласен с симпатичностью подобных приложений, это относится особенным образом.
Можете писать мне по почте, я отвечу. Лучшие (нормальные) вопросы опубликую на форуме.
С Уважением, автор вопроса и Region Maker.
P.S. Я решил отказаться от идеи dll, распространяю в pas, потом перепишу на C++
← →
DevilDevil © (2006-03-31 01:57) [48]
ПРОШУ ПРОЩЕНИЯ!
Проект Region Maker теперь можно скачать: http://kerkzone.net/files/regionmaker.zip
← →
АлексейК (2006-03-31 05:25) [49]Мне весело, когда смешных встречаю,
А чаще с ними я скучаю.
← →
antonn © (2006-03-31 06:08) [50]в общем, вы придумали метод сжатия регионов, и теперь его обязательно использовать хоть в каком нибудь проекте...
← →
Gero © (2006-03-31 10:10) [51]> DevilDevil © (31.03.06 01:54)
А можно скришншоты увидеть?
← →
DevilDevil © (2006-03-31 13:12) [52]> Gero © (31.03.06 10:10) [51]
ты скачай, там example.jpg есть
← →
Gero © (2006-03-31 13:24) [53]> DevilDevil © (31.03.06 13:12)
> ты скачай, там example.jpg есть
Скачал. Посмотрел. Уже в корзине.
← →
DevilDevil © (2006-03-31 14:34) [54]> Gero © (31.03.06 13:24) [53]
И что, ты типа считаешь, плохой пример?
Ты же не считаешь, что прямоугольный вариант лучше?!
В противном случае, извини, но у тебя абсолютно нет вкуса.
Это не твоя вина, люди разные рождаются.
Советую получше рассмотреть пример. Как минимум, проявить уважение к проекту. Он того заслуживает
← →
DevilDevil © (2006-03-31 14:37) [55]АлексейК (31.03.06 05:25) [49]
Мне весело, когда смешных встречаю,
А чаще с ними я скучаю.
Я обращусь к тебе с советом:
Не посещай ты форум этот!
← →
Игорь Шевченко © (2006-03-31 14:45) [56]DevilDevil © (31.03.06 14:37) [55]
Дорогой друг, давайте вы не будете говорить другим, что им посещать, а другие не будут вам говорить, куда идти.
С уважением,
← →
Virgo_Style © (2006-03-31 16:55) [57]DevilDevil © (31.03.06 14:34) [54]
Скачал, посмотрел. У меня тоже абсолютно нет вкуса %-)
← →
DIMODIM (2006-03-31 17:00) [58]Смысл было делать библиотеку ??
Зачем кому нибудб не квадратные окна , у меня такая программа была в комплекте с Делфи 5 еще 200 году , я выбирал форму окна , и делал каието дополнения , а она мне писала , что и где вставить в форму
--
Итого форма-Круг весила 20 строк кода
← →
antonn © (2006-03-31 17:30) [59]хех...
try..finally в коде замечено небыло...
а вот это меня совсем убило:if (Image.Canvas.Pixels[X, Y] = TransColor)
хи-хи-хи, особенно оглядываясь на первый пост, я был прав :)
> В-третьих, грузится такая программа на пару секунд дольше. Связано это с медленным алгоритмом создания региона.
← →
OSokin © (2006-03-31 19:11) [60]Димодим, не выпендривайся. Это можно сделать одной процедурой в 8 строк с сохранением стилизации кода и ключевыми словами типа procedure и т. п.
К тому же речь идет не о круглой форме, которую легко сделать, а о компоненте, позволяющем создавать произвольную форму. Причем с возможностью редактирования формы в рантайме. Круглую форму ты делать умеешь - сделай и это. Сделай, выложи где-нибудь и потом ори, что никому это нафиг не надо. Мы посмотрим, потестируем, ты выслушаешь критику и исправишь недоработки (хотя это вряд ли будет - все уже убедились в твоей неспособности даже выслушивать критику).
Наверное, многие со мной согласятся?
← →
oldman © (2006-03-31 19:15) [61]
> DevilDevil © (31.03.06 01:54) [47]
Уважаемый, если вам пропиарить свой компонент, то не надо выпендриваться!
Компонент, кстати, так себе.
"скачал, посмотрел, в корзине"... (©)
← →
Джо © (2006-03-31 19:20) [62]> [54] DevilDevil © (31.03.06 14:34)
> И что, ты типа считаешь, плохой пример?
> Ты же не считаешь, что прямоугольный вариант лучше?!
Понимание того, что прямоугольный вариант-таки лучше, приходит не сразу, не расстраивайся :)
← →
OSokin © (2006-03-31 19:22) [63]Дык человек и попросил помочь
← →
OSokin © (2006-03-31 19:25) [64]Дык человек и попросил помочь
← →
oldman © (2006-03-31 19:28) [65]
> OSokin © (31.03.06 19:22) [63]
> Дык человек и попросил помочь
>
> OSokin © (31.03.06 19:25) [64]
> Дык человек и попросил помочь
Но вот чтоб кнопка "Добавить" зависла на 3 минуты...
:)))
← →
DevilDevil © (2006-03-31 19:29) [66]Опять началась вода, не больше, очень жаль :(
> Компонент, кстати, так себе.
нет там никаких компонентов
> а вот это меня совсем убило:
> if (Image.Canvas.Pixels[X, Y] = TransColor)
> хи-хи-хи, особенно оглядываясь на первый пост, я был прав :)
а меня добивает другое: как столько раз прочитав просьбы автора, можно продолжать лить воду. Про Scanline я занаю прекрасно, поэтому так уверенно говорю, что скорость создания увеличится раз в 30-40. Библиотека в таком состоянии - временно
> OSokin © (31.03.06 19:11) [60]
Спасибо за редкую поддержку на этом форуме.
Вообще функция SaveRgnToFile предназначена не для создания региона в рантайм. А для того, чтобы тот, кто возьмётся развивать интерфейсную часть утилиты, имел возможность протестировать. Для создания в реальном времени, в библиотеке будет другая функция.
Ещё раз, спасибо
← →
vrem (2006-03-31 19:33) [67]Круглые не круглые - форму как шрифт или как рисунок можно получить, забавное дело, у меня bart.gif есть, так получилось и такую форму сделать :)
Где использовать, навскидку, - формы вроде прямоугольные, но чуть с изъяном прямолинейности, как у Дали на картине часы гнутые :)
← →
oldman © (2006-03-31 19:37) [68]
> DevilDevil © (31.03.06 19:29) [66]
> > Компонент, кстати, так себе.
> нет там никаких компонентов
Ах, извините, ошибся...
ИДЕЯ, КСТАТИ, ТАК СЕБЕ!!!
Устроит?
← →
oldman © (2006-03-31 19:39) [69]"Дата рождения: 04.12.1986
Город: Нижний Новгород
Пол: Мужской
Образование: незаконченное высшее"
Ты хоть наш родной родной город не позорь!!!
← →
antonn © (2006-03-31 20:13) [70]oldman © (31.03.06 19:39) [69]
ну студент, что такого? у меня тоже незаконченное пока еще, дык я 1984:)
← →
DevilDevil © (2006-03-31 20:56) [71]> Ты хоть наш родной родной город не позорь!!!
Простите, не понимаю Вашей реплики.
По моему, прославляю. Но тема не об этом!
Если хотите обсудить, заведите, пожалуйста, отдельную тему
← →
Gero © (2006-04-01 00:20) [72]> [54] DevilDevil © (31.03.06 14:34)
> И что, ты типа считаешь, плохой пример?
Не знаю, других примером я не видел сравнивать не с чем. Но это уродство. И вовсе не потому что типа чисто канкретно.
> Ты же не считаешь, что прямоугольный вариант лучше?!
Еще и как считаю.
> Советую получше рассмотреть пример. Как минимум, проявить
> уважение к проекту. Он того заслуживает
Я сам решу к чему мне проявлять уважение, а к чему нет, договорились?
Ты со временем сам поймешь, что то, что делаешь, и что об этом говоришь, просто смешно и нелепо. Надеюсь, что поймешь.
← →
McSimm © (2006-04-01 00:49) [73]Есть предложение.
Сказано уже достаточно много, изменений во взглядах спорящих не предвидется, поэтому есть предложение снизить накал дискуссии до температуры забортной воды а еще лучше остаться в ветке только сторонникам проекта и пусть время и спрос сами решат что им положено решить и объяснят все, что требуется объяснить.
В качестве бонуса - всем участникам по медальке :)
http://www.delphimaster.ru/screp.exe
← →
Gero © (2006-04-01 00:51) [74]> [73] McSimm © (01.04.06 00:49)
> http://www.delphimaster.ru/screp.exe
Класс :))
← →
Gero © (2006-04-01 00:52) [75]> [73] McSimm © (01.04.06 00:49)
Неужели Delphi установил? :)
← →
McSimm © (2006-04-01 00:53) [76]Этой медали в обед - ыдцать лет
← →
Джо © (2006-04-01 00:55) [77]Ай, красота :)
Все, больше в этой ветке не флужу, сорри.
← →
Zeqfreed © (2006-04-01 01:33) [78]Однако, приятно зайти в свою анкету и прикрепить медальку на должное место :))
← →
DevilDevil © (2006-04-01 02:46) [79]> McSimm © (01.04.06 00:49) [73]
Спасибо, что вмешался.
Несмотря на мои просьбы прекращать, толку не было.
Уважение к администратору всё-таки больше.
Медаль прикольнаяЕсли всё-таки есть Мастер(а), которого(ых) заинтересовало развитие утилиты, готовый(ые) продолжать работу со мной, напиши(те)
P.S. жалко, что народ почему-то так и не понял, что моя утилита как раз и предназначена для упрощения программирования таких прикольных программ
← →
antonn © (2006-04-01 07:13) [80]DevilDevil © (01.04.06 2:46) [79]
P.S. жалко, что народ почему-то так и не понял, что моя утилита как раз и предназначена для упрощения программирования таких прикольных программ
ну какое упрощение? в пайнте (или в чем либо помощнее) создается битовая маска, сжиматся zlib"ом и пихается в ресурс. при запуске находится ресурс, расжимается и грузится во временный битмап, далее пробегаем по пикселям и комбинируем регион. Действия эти не так уж и сложны... По крайней мере я так и поступаю со всеми "своими" ресурсами.
А битовая маска перед регионом имеет огромный плюс - ее можно не геморройно изменять в процессе работы программы, и, соотвественно, менять регион.
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.013 c