Вниз
Скачать: CL | DM;

Сдвиг изображения   Найти похожие ветки 

 
Виталя   (2008-06-18 15:37) [0]

Товарищи программисты,помогите пожалуйста реализовать фильтр offset фотошопа в делфи


 
MBo ©   (2008-06-18 17:01) [1]

что делает это фильтр (фотошопа не видел)


 
MBo ©   (2008-06-18 17:01) [2]

что делает это фильтр?
(фотошопа не видел)


 
Омлет   (2008-06-18 19:56) [3]

Фильтр Offset (Сдвиг) - сдвигает выделенные области изображения по горизонтали или вертикали на точно заданное число пикселей.

Это самое простое, что можно запрограммировать в фильтрах для граф.редактора ))
Просто копировать нужную часть рисунка с помощью BitBlt или Canvas.CopyRect со смещением. Не вижу тут никаких сложностей в плане алгоритма.


 
Омлет   (2008-06-18 20:11) [4]

type
 TMoveStyle = (msAll, msBack);

procedure MoveBitmap(Src, Dest: TBitmap; Hor, Ver: Integer; Style: TMoveStyle; BackColor: TColor);
var x, y: Integer;
begin
 if (Hor = 0) and (Ver = 0) then Exit;
 Dest.Width := Src.Width;
 Dest.Height := Src.Height;
 Dest.PixelFormat := Src.PixelFormat;
 Dest.Transparent := False;

 if Style = msBack then
   with Dest.Canvas do begin
     Brush.Style := bsSolid;
     Brush.Color := BackColor;
     FillRect(Rect(0, 0, Dest.Width, Dest.Height));
   end;

 if Style = msAll then begin
   if Hor > 0 then x := Hor - Dest.Width
              else x := Dest.Width + Hor;
   if Ver > 0 then y := Ver - Dest.Height
              else y := Dest.Height + Ver;
   if (x <> 0) and (y <> 0) then Dest.Canvas.Draw(x, y, Src);
   Dest.Canvas.Draw(Hor, y, Src);
   Dest.Canvas.Draw(x, Ver, Src);
 end;

 Dest.Canvas.Draw(Hor, Ver, Src);
end;


Src - исходное изображение
Dest - результат
Hor, Ver - число пикселей, на которое будет смещение по горизонтали и вертикали
Style - тип фона: msBack - фон закрашивается цветом BackColor, msAll - смещение происходит с перелезанием конца в начало и низа вверх, либо наоборот.
Выдернуто из старющего проекта, поэтому немного нелогично :)



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.005 c
2-1302452393
mefodiy
2011-04-10 20:19
2011.07.17
Проблема с закрытием формы


15-1301471301
И. Павел
2011-03-30 11:48
2011.07.17
Как узнать id добавленной записи в БД?


2-1302557511
zulus
2011-04-12 01:31
2011.07.17
Интеграция кода ид С++ DLL В Delphi


2-1302088974
ddd329
2011-04-06 15:22
2011.07.17
Заголовок в Indy корявый


2-1302637050
AlekVolsk
2011-04-12 23:37
2011.07.17
AnsiString to String в DelphiXE




   Наверх