Конференция "Media" » Сдвиг изображения [WinXP]
 
  • Виталя (18.06.08 15:37) [0]
    Товарищи программисты,помогите пожалуйста реализовать фильтр offset фотошопа в делфи
  • MBo © (18.06.08 17:01) [1]
    что делает это фильтр (фотошопа не видел)
  • MBo © (18.06.08 17:01) [2]
    что делает это фильтр?
    (фотошопа не видел)
  • Омлет (18.06.08 19:56) [3]
    Фильтр Offset (Сдвиг) - сдвигает выделенные области изображения по горизонтали или вертикали на точно заданное число пикселей.

    Это самое простое, что можно запрограммировать в фильтрах для граф.редактора ))
    Просто копировать нужную часть рисунка с помощью BitBlt или Canvas.CopyRect со смещением. Не вижу тут никаких сложностей в плане алгоритма.
  • Омлет (18.06.08 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 - смещение происходит с перелезанием конца в начало и низа вверх, либо наоборот.
    Выдернуто из старющего проекта, поэтому немного нелогично :)
 
Конференция "Media" » Сдвиг изображения [WinXP]
Есть новые Нет новых   [133926   +466][b:0][p:0.001]