Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
Виталя   (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 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.003 c
15-1301603395
Юрий
2011-04-01 00:29
2011.07.17
С днем рождения ! 1 апреля 2011 пятница


15-1301516995
Юрий
2011-03-31 00:29
2011.07.17
С днем рождения ! 31 марта 2011 четверг


8-1213608131
Midous
2008-06-16 13:22
2011.07.17
Воспроизведение музыки без ошибок при отсутствии кодеков


2-1302005274
Германн
2011-04-05 16:07
2011.07.17
Как запретить изменение ширины колонок в ListView?


15-1301468622
eclipse
2011-03-30 11:03
2011.07.17
"Тест драйв" программы





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