Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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 нужен законченый продукт?


Я уже сказал, что бизнесменам надо идти на х.. . Сколько ещё можно кляньчить?


> кисть - это накладываемый рисунок различными алгоритмами.
>  сделать так, чтобы он выводится именно линией, а не позициями
> - дело несложное.


Однако сделано небыло.


> Мягкие края присутствуют, видны даже невооруженным глазом.


Микроскопические края - это не кисть.


 
Живописец   (2007-11-06 06:58) [41]

Кстати вопрос по теме, кто видел где-нибудь описания форматов кистей Фотошопа abr-файлов ?


 
Dib@zol ©   (2007-11-06 15:40) [42]

> [41] Живописец   (06.11.07 06:58)

Ну вряд ли в файлах abr кроме данных кисти содержится ещё и алгоритм их работы :) И вообще чем тебе не нравятся антонновская и моя проги? Кисточка не линиями рисует? А это уже надо код изучить и учебничеГ геометрии за 8-й класс почитать - как в системе координат построить точки равномерно распределённые по длине отрезка. И потом, при передвижении кисточки, эти точки отрисовывать.


 
antonn ©   (2007-11-06 19:58) [43]

ему не нужен учебник тригонометрии, он так и будет клянчить готовый кусок кода...


 
Живописец   (2007-11-07 01:21) [44]


> Dib@zol ©   (06.11.07 15:40) [42]
>
> > [41] Живописец   (06.11.07 06:58)
>
> Ну вряд ли в файлах abr кроме данных кисти содержится ещё
> и алгоритм их работы :)


Зато можно понять какие там параметры используются. Например, какой принцип работы кисти которая рисует траву?

Судя по программам-просмотрщикам файлов abr, где-то формат описан. Но вот где?


 
Живописец   (2007-11-17 03:38) [45]


> Dib@zol ©   (06.11.07 15:40) [42]
>
> > [41] Живописец   (06.11.07 06:58)
>
> Ну вряд ли в файлах abr кроме данных кисти содержится ещё
> и алгоритм их работы :) И вообще чем тебе не нравятся антонновская
> и моя проги?


Твоя рисует с разрывами. К его я уже высказал притензии, кроме того он скрывает исходники.

Но в общемя я уже написал свою кисть, лишённую этих недостатоков, так, что вопрос не актуален.

Актуален вопрос про формат фотошоповских кистей. Описаний формата так и не нашёл. Неужели никто не знает?


 
Virgo_Style ©   (2007-11-17 11:11) [46]

> Живописец   (17.11.07 03:38) [45]
> Актуален вопрос про формат фотошоповских кистей. Описаний
> формата так и не нашёл. Неужели никто не знает?


Точно знают в Adobe, но google тоже догадывается:

http://the.sunnyspot.org/gimp/tools.html - open source конвертер abr в gbr
http://cinepaint.org/docs/gbr.html - описание формата gbr


 
Живописец   (2007-11-25 02:29) [47]

Честно говоря, ничего не понял. Там один сишный файл, и три длл-ки без исходников. Подозреваю, что всё дело в них.


 
Johnmen ©   (2007-11-25 03:41) [48]


> Живописец   (25.11.07 02:29) [47]
> Честно говоря, ничего не понял.

А тебе и не надо. Расслабься......


 
Писец   (2007-11-26 02:14) [49]

Удалено модератором



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.076 c
15-1195740783
@!!ex
2007-11-22 17:13
2007.12.23
Оцените код.


15-1195544501
DelphiN!
2007-11-20 10:41
2007.12.23
VCL c потдержкой Unicode для Delphi6


2-1196189336
greengeneral
2007-11-27 21:48
2007.12.23
StringGrid в несколько строк


6-1176654315
privet2005
2007-04-15 20:25
2007.12.23
Клиент-сервер с одновременным подключением 100-1000 пользователей


15-1195830190
oldman
2007-11-23 18:03
2007.12.23
Что-то я не понял шуток ХР...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский