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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2014, 22:55   #1
Артур Нестеров
Новичок
Джуниор
 
Регистрация: 16.05.2014
Сообщений: 2
По умолчанию К изображению в BMP файле употребить фильтр к каждому пикселю в формате RGB

Задание:К изображению в BMP файле употребить фильтр к каждому пикселю в формате RGB. Линейный фильтр задается по двум точкам. В итоге должен получиться новый файл с изменённым изображением.
Артур Нестеров вне форума Ответить с цитированием
Старый 18.05.2014, 11:30   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Взято из ДРКБ. Работает с канвой формы. Для bmp файла попробуйте доделать самостоятельно.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  width = 100;
  height = 60;
  d = 2;
var
  x, y: integer;
  i, j: integer;
  c: integer;
  Pix: array [0..width-1, 0..height-1] of byte;
begin
  randomize;
  with Form1.Canvas do
    begin
      Font.Name := 'Arial';
      Font.Size := 30;
      TextOut(d, d, 'Text');
      for y := 0 to height - 1 do
        for x := 0 to width - 1 do
          Pix[x,y] := GetRValue(Pixels[x,y]);
      for y := d to height - d - 1 do
        begin
          for x := d to width - d - 1 do
            begin
              c := 0;
              for i := -d to d do
                for j := -d to d do
                  c := c + Pix[x+i,y+j];
              c := round(c / sqr(2 * d + 1));
              Pixels[x,y] := RGB(c, c, c);
           end;
          Application.ProcessMessages;
        end;
    end;
end;

end.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 18.05.2014, 14:37   #3
Артур Нестеров
Новичок
Джуниор
 
Регистрация: 16.05.2014
Сообщений: 2
По умолчанию

Спасибо, постараюсь разобраться. Скину, что получится..
Артур Нестеров вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RGB в CMYK и CMYK в RGB могут конвертироваться без потери качества? hon Мультимедиа в Delphi 5 19.08.2012 14:41
Сохранение изображения в формате .bmp tantema C# (си шарп) 0 06.11.2011 22:11
Извлечение RGB пикселей из bmp-файла St0ne-c0ld Фриланс 7 16.10.2008 18:27
Создание графиков в формате bmp AleksP Общие вопросы C/C++ 1 09.10.2008 17:10