Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1144742061
Тфьу
2006-04-11 11:54
2006.04.30
А вот вопрос по Oracle


15-1144404748
Vlad
2006-04-07 14:12
2006.04.30
Задачка из жизни.


2-1144920305
Ded22
2006-04-13 13:25
2006.04.30
передача фокуса


15-1144315906
Erik1
2006-04-06 13:31
2006.04.30
Где найти компонент для отображения TIFF формата с компресией?


2-1145038924
R2D2
2006-04-14 22:22
2006.04.30
Алгоритм Диффи-Хелмана





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский