Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 10:16   #1
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию Библиотека графических эффектов в dll.

Необходимо создать библиотеку графических эффектов (типа "шум","гаусс" etc) алгоритмы эффектов мне известны, единственный вопрос в том, как это вынести в dll? Отправлять TBitMap.Handle, а в dll присваивать этот хендл "свежему" битмапу?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.06.2010, 13:16   #2
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Хорошо

У меня тоже была идея создать что-нибудь подобное...
Думаю нужно попробовать передавать процедуре HBITMAP, а там уже как удобнее будет... Напрямую в памяти например...
А что имеется ввиду под "присваивать этот хендл 'свежему' битмапу"?

Кстати было бы интересно посмотреть сами алгоритмы...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2010, 13:20   #3
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Кстати было бы интересно посмотреть сами алгоритмы...
Ну дык курить вику и фантазию

Цитата:
А что имеется ввиду под "присваивать этот хендл 'свежему' битмапу"?
Код:
Procedure FVEL_Effect001(BitMap.Handle);
Код:
Procedure FVEL_Effect001(H : THandle);
Var
 B : TBitMap;
Begin
 B := TBitMap.Create;
 B.Handle := H;
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.06.2010, 13:30   #4
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Цитата:
B := TBitMap.Create;
Эм... А зачем в dll тащить VCL? Через указатели прям в памяти и работать...
WinAPI-то думаю полюбому понадобится, а TBitmap это уже как-то не очень...

Цитата:
Ну дык курить вику и фантазию
Ну их же много бывает... Может что-нить особое завалялось, что так просто не найти...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2010, 13:33   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
WinAPI-то думаю полюбому понадобится
Не подмогнете с редактированием картинки по HBITMAP? Уже с полгода курю все, что можно, не вставляет... Кайфа все нет как нет...
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 15.06.2010, 14:47   #6
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

А возможно достаточно даже просто указатель и параметры битмапа передавать... Но там уже нужно будет при использовании следить чтоб всё правильно было...

Можно попробовать... Какой фильтр для пробы сделаем? Преобразовать в ч/б?
Есть шаблон dll'ки? А то я их для себя не делал ни разу (просто не люблю когда кроме моего экзешника чтот ещё нужно)...
exports обязательно в самом конце писать?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 15.06.2010, 16:13   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Вот например шаблон:
Вложения
Тип файла: rar FVFL.rar (40.7 Кб, 12 просмотров)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 16.06.2010, 16:18   #8
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Ну вот примерно такое:

Dll:
Код:
library FVFL;

uses Windows;

{$R *.res}

procedure FVFL_ConvertToBW(Handle: HBITMAP); stdcall;
var x, y: Integer; c: byte; BMP: BITMAP; p1, p2: PRGBTriple;
begin
Windows.GetObject(Handle, SizeOf(Bmp), @BMP);
p1:=BMP.bmBits;
if BMP.bmBitsPixel=24 then
      for y:=0 to BMP.bmHeight-1 do
            begin
            p2:=p1;
            for x:=0 to BMP.bmWidth-1 do
                  begin
                  c:=(p2.rgbtRed+p2.rgbtGreen+p2.rgbtBlue) div 3;
                  p2.rgbtRed:=c;
                  p2.rgbtGreen:=c;
                  p2.rgbtBlue:=c;
                  inc(p2);
                  end;
            Pointer(p1):=Pointer(Integer(p1)+BMP.bmWidthBytes);
            end
else
      MessageBox(0, 'Function works with 24bit bitmaps only!', 'Error', MB_OK);
end;

exports FVFL_convertToBW;

begin
end.
Test:
Код:
procedure FVFL_ConvertToBW(Handle: HBITMAP); StdCall; External 'FVFL.dll';

...

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
FVFL_ConvertToBW(Image1.Picture.Bitmap.Handle);
Image1.Refresh;
end;
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 17.06.2010, 11:20   #9
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Код:
procedure FVFL_ConvertToBW(Handle: HBITMAP);
Если мы послыем и выуживаем обратно, разве не нужно указывать разрешение "вытяжки"?
Код:
procedure FVFL_ConvertToBW(Var Handle: HBITMAP);
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 17.06.2010, 11:25   #10
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Эм..... А зачем?
Оно же и не измениться.....
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLL-библиотека Lisёноk Помощь студентам 2 29.04.2010 22:00
DLL библиотека Владимир1988 Помощь студентам 1 17.11.2009 17:15
библиотека bass.dll larry Win Api 2 31.07.2009 15:37
Библиотека классов != обычная DLL ? darkstarx Общие вопросы .NET 3 14.04.2008 14:41
HTW32PAS.DLL необходима эта библиотека lekaon Свободное общение 4 21.08.2007 19:14