Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.65 MB
Время: 0.056 c
15-1144520576
ArtemESC
2006-04-08 22:22
2006.04.30
стандартный debugger


2-1144925925
Случайный прохожий
2006-04-13 14:58
2006.04.30
Архивация в делфи


15-1144414217
Ezorcist
2006-04-07 16:50
2006.04.30
Как перезагрузить ПК?


15-1144576964
homm
2006-04-09 14:02
2006.04.30
PHP: Регулярные выражения


2-1144930611
Der Nechk@ssoff
2006-04-13 16:16
2006.04.30
Типизация файла