Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизУ кого нибудь есть пример реализации рисования кистью на битмэпе? Найти похожие ветки
← →
Живописец (2007-10-27 04:35) [0]Кисть обычная, круглая, со смазанными краями.
← →
pedro nuevo (2007-10-27 08:43) [1]Собственно само рисование кистью - есть оставление отпечатка этой кисти с определенной переодичностью на холсте (советую посмотреть как работает кисточка в jasc paint shop pro и какие ее настройки на что влияют). Основная сложность в получении самой кисти (ее мягких границ), здесь не обойтись без математики. Реализовать разгон акварельной кисточки тоже довольно непростая задача. В общем, учить матчасть.
← →
antonn © (2007-10-27 17:29) [2]
> Основная сложность в получении самой кисти (ее мягких границ),
> здесь не обойтись без математики.
замечатеьный вывод %)
попиксельно затемнять (или высветлять, изменять короче) область фона, на которую наносится кисть, коефициент затемнения зависит от цвета пикселя на кисти.
← →
pedro nuevo (2007-10-27 17:46) [3]antonn © (27.10.07 17:29) [2]
Ха, а как саму кисть получить (настраиваемую по размеру, прозрачности, мягкости)?
Radial gradient fill-ом вестимо.
← →
antonn © (2007-10-27 17:51) [4]canvas.ellipse() + blur если нужно получить только смазаные края.
на крайни случай кисть можно хранить в нескольких экземплярах.
← →
pedro nuevo (2007-10-27 17:54) [5]antonn © (27.10.07 17:51) [4]
Для курсовой сгодится.
← →
Живописец (2007-10-28 01:53) [6]А может кто-нибудь пример запостить?
Или какие-нибудь библиотечки, где это есть?
У канваса есть функция LineTo. Но она работает только с Pen"ом. Мне бы для кисти что-нибудь такое же простое.
← →
Черный Шаман (2007-10-29 00:14) [7]
> Живописец (28.10.07 01:53) [6]
>
> А может кто-нибудь пример запостить?
> Или какие-нибудь библиотечки, где это есть?
>
> У канваса есть функция LineTo. Но она работает только с
> Pen"ом. Мне бы для кисти что-нибудь такое же простое.
Ась? Ты чего хотел?
← →
Живописец (2007-10-29 01:40) [8]Удалено модератором
← →
Живописец (2007-10-30 01:23) [9]Удалено модератором
← →
ЛшдлуттнСфе (2007-10-30 02:21) [10]
> Мне бы для кисти что-нибудь такое же простое.
Бруш
← →
antonn © (2007-10-30 08:57) [11]продам за 5wmz рисование кистью произвольной формы и произвольной размазаности :)
← →
Nic © (2007-10-30 09:59) [12]
> antonn © (30.10.07 08:57) [11]
За сколько продаш права использования DeskStickers в стороннем коммерческом приложении? Пиши на onicolaev@ya.ru или в асю 234-779-804
Пусть исходник будет не самый свежий или вообще без исходника. Но стиккеры позарез нужны, а времени реализовывать - нет ;)
← →
SoDA (2007-10-30 10:17) [13]Кстати о стикерах.
Вот нашлись отличные бесплатные стикеры: http://www.tk8.com/easynote.asp
← →
Nic © (2007-10-30 12:50) [14]
> antonn © (30.10.07 08:57) [11]
Я жду ответ :-)
← →
Nic © (2007-10-30 21:45) [15]Удалено модератором
← →
antonn © (2007-10-30 22:04) [16]
> За сколько продаш права использования DeskStickers в стороннем
> коммерческом приложении? Пиши на onicolaev@ya.ru или в асю
> 234-779-804
> Пусть исходник будет не самый свежий или вообще без исходника.
> Но стиккеры позарез нужны, а времени реализовывать - нет
> ;)
уже не продам, продал проект сторонней конторе, выпущу последнюю ошибко-патч и усе, + некоторое время в поддержке буду говорить, что мой код делает :)
← →
antonn © (2007-10-30 22:06) [17]
> Кстати о стикерах.
> Вот нашлись отличные бесплатные стикеры: http://www.tk8.
> com/easynote.asp
немножко пиара:)
http://desksoft.ru/index.php?forum=7&th=26
← →
SoDA (2007-10-30 22:20) [18]antonn © (30.10.07 22:06) [17]
Сайт - супер.
← →
Nic © (2007-10-30 23:06) [19]
> antonn © (30.10.07 22:04) [16]
Жаль. Ну чтож, засучим рукова и будем реализовывать :)
← →
Прогер (2007-10-31 02:46) [20]
> Nic © (30.10.07 09:59) [12]
>
>
> > antonn © (30.10.07 08:57) [11]
>
> За сколько продаш права использования DeskStickers в стороннем
> коммерческом приложении? Пиши на onicolaev@ya.ru или в асю
> 234-779-804
> Пусть исходник будет не самый свежий или вообще без исходника.
> Но стиккеры позарез нужны, а времени реализовывать - нет
> ;)
Почём платишь за реализацию?
← →
Nic © (2007-10-31 13:32) [21]
> Прогер (31.10.07 02:46) [20]
Плачу щедро, требую сурово.
Сделаю сам :) Интересовал программный продукт antonna. Технически реализовать не так уж сложно, но 1) на это надо время 2) у него всё уже реализовано и стильно сделано
← →
Живописец (2007-11-01 01:45) [22]Может хватит рекламировать?
Кто-нибудь по теме может поделиться куском кода?
← →
Живописец (2007-11-02 01:41) [23]Допустим я получил картинку кисти. Чёрно-белая картинка. Чёрный пиксель - значит непрозрачный, белый - значит прозрачный. Остальные - полупрозрачные в соответствии с чернотой цвета.
Как мне такой кистью, то есть этой картинкой, провести линию?
← →
Nic © (2007-11-02 11:32) [24]..
Canvas.LineTo(...);
..
← →
Nic © (2007-11-02 11:32) [25]Можно и на OpenGL :)
← →
Nic © (2007-11-02 11:36) [26]Тогда можно с помощью
..
glBegin(gl_Lines);
glVertex2F(x, y);
..
glEnd();
А если сделаешь объёмную модель наносимого рисунка, будет очень стильно ;) Но тогда код будет малость помудрёнее.
← →
Живописец (2007-11-03 05:03) [27]
> Nic © (02.11.07 11:32) [24]
>
> ..
> Canvas.LineTo(...);
Это пэном рисует, а не брашем.
> Nic © (02.11.07 11:32) [25]
>
> Можно и на OpenGL :)
Нет, мне на TBitMap.
← →
antonn © (2007-11-03 12:36) [28]типа вот такое надо?
http://desksoft.ru/index.php?downloads=attachments&id=38 (540кб, zip, демо:))
← →
TStas © (2007-11-04 08:57) [29]>antonn Ой, какая штука красивая. А там полупрозрачность кисточки как реализована? Вычисляется для пикселов среднее между цветом кисточки и пиксела картинки? Если совсем прозрачная, то цвет пиксела картинки не изменится, и дальше - все ближе к цвету самой кисточки?
← →
Nic © (2007-11-04 11:08) [30]
> Живописец (03.11.07 05:03) [27]
0. Не мучай себя. Купи у аntonn пока этого не сделала сторонняя организация со всеми правами на данное решение.
1. С помощью Canvas можно реализовать вполне;
2. можно нарисовать на OpenGL, а выводить куда угодно потом.
← →
antonn © (2007-11-04 12:16) [31]
> А там полупрозрачность кисточки как реализована?
кисть - готовая grayscale битмапка. Делаю просто альфаблитинг, в качестве альфы беру канал R (все равно серый и каналы равны), а в качестве самих RGB беру цвет из colorbox"а, плюс коефициент прозрачности :) Это для нанесения. Для осветления и затемнения не пользую коефициенты, просто изменяю каналы.
> Купи у аntonn пока этого не сделала сторонняя организация
> со всеми правами на данное решение.
да-да, а то микрософту продам %)
> 1. С помощью Canvas можно реализовать вполне;
вот кстати не предствляю как, потому что будут такие тормоза, что огого. Сейчас сканлайн использую с tbitmap, если перевести все на работу на обычных массивах с блитингом с ММХ - скорости еще значительно добавится (массив с блитингом "просто на асме" уже в 7 раз быстрее сканлайна).
Кстати, про ОГЛ, тут в играх как раз мучаются товарищи с рендером сцены на битмап %)
← →
antonn © (2007-11-04 12:27) [32]
> Вычисляется для пикселов среднее между цветом кисточки и
> пиксела картинки?
сама форула типа такого:R_dest:=trunc(R_dest+(R_source-R_dest)*d);
R_dest - изображение-фон, R_source - накладываемое изображение (кисть), d коефициент (в нем собсно и прозрачность кисти)
← →
homm © (2007-11-04 13:08) [33]> массив с блитингом "просто на асме" уже в 7 раз быстрее
> сканлайна
Можно и на паскале нормально переписать под битмап, будет не намного тормознее.
У тебя битмап какой, кстати, поди DDB? :)
← →
antonn © (2007-11-04 13:21) [34]
> У тебя битмап какой, кстати, поди DDB? :)
без понятия, я не заморачивался на коде, оно и так вроде не тормозит :)
делал просто bt:=tbitmap.create; :)
← →
Nic © (2007-11-04 14:13) [35]
> antonn © (04.11.07 12:16) [31]
Может дашь линк на фирму, которая купила стиккеры и располагает правами? Оч. прошу ;-)
p/s Что же ты мне сразу не продал, я ведь раньше хотел купить..
← →
Dib@zol © (2007-11-04 15:45) [36]Вота вам. Накропал за 5 мин. Тормозит правда, заррраза ;D Однако, если найду время, перепишу под DIB и работу напрямую с памятью. Как грица, следите за веткой =)
http://webfile.ru/1581400
← →
Dib@zol © (2007-11-04 15:47) [37]ЗЫ: Директиву {$R AllData.res} можете закомментировать.
← →
Живописец (2007-11-05 01:53) [38]
> Nic © (04.11.07 11:08) [30]
> Купи у аntonn пока этого не сделала сторонняя организация
> со всеми правами на данное решение.
Вообще то вопрос был: Кто-нибудь по теме может поделиться куском кода?
Тем более, что сделано криво. Кисть - это не пунктирная линия, а цельная, и кисть - это мягкие края. А жёсткие края, как там - это карандаш.
← →
antonn © (2007-11-05 11:16) [39]
> Тем более, что сделано криво.
за 5mwz нужен законченый продукт? а еще лучше сразу поделиться кодом? ха-ха :)
> Кисть - это не пунктирная линия, а цельная, и кисть - это
> мягкие края.
кисть - это накладываемый рисунок различными алгоритмами. сделать так, чтобы он выводится именно линией, а не позициями - дело несложное. Мягкие края присутствуют, видны даже невооруженным глазом.
← →
Живописец (2007-11-06 02:54) [40]
> antonn © (05.11.07 11:16) [39]
>
> > Тем более, что сделано криво.
>
> за 5mwz нужен законченый продукт?
Я уже сказал, что бизнесменам надо идти на х.. . Сколько ещё можно кляньчить?
> кисть - это накладываемый рисунок различными алгоритмами.
> сделать так, чтобы он выводится именно линией, а не позициями
> - дело несложное.
Однако сделано небыло.
> Мягкие края присутствуют, видны даже невооруженным глазом.
Микроскопические края - это не кисть.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.044 c