Подписаться на RSS рассылку
Главная » Статьи по Delphi » Bitmap » Зеркальное отражение изображения

Зеркальное отражение изображения

Автор: Борисов Сергей

На форме размещаем TImage. В него загружаем BMP.

// Отражение по горизонтали
Function ReflexionH(source: TBitMap): TBitMap;
var i, j: Integer;
begin
  Result:=TBitmap.Create;
  Result.Height:=source.Height;
  Result.Width:=source.Width;
  With source do
  begin
    for i:=0 to Width do
      for j:=0 to Height do
        Result.Canvas.Pixels[i, j]:=Canvas.Pixels[Width-i-1,j];
  end;
end;

// Отражение по вертикали
Function ReflexionV(source: TBitMap): TBitMap;
var i, j: Integer;
begin
  Result:=TBitmap.Create;
  Result.Height:=source.Height;
  Result.Width:=source.Width;
  With source do
  begin
    for i:=0 to width do
      for j:=0 to Height do
        Result.Canvas.Pixels[i, j]:=Canvas.Pixels[i,Height-j-1];
  end;
end;

// Отражение и по вертикали и по горизонтали
Function ReflexionHV(source: TBitMap): TBitMap;
var i, j: Integer;
begin
  Result:=TBitmap.Create;
  Result.Height:=source.Height;
  Result.Width:=source.Width;
  With source do
  begin
    for i:=0 to width do
      for j:=0 to Height do
        Result.Canvas.Pixels[i, j]:=Canvas.Pixels[Width-i-1,Height-j-1];
  end;
end;

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Image1.Picture.Assign(ReflexionHV(Image1.Picture.Bitmap));
end;

Просмотров: 6705

Обсудить на форуме

0   Спам
(24.07.2013)
4. Сергей Иванов (Serzh)
Компьютер – зависание внезапные выключения сбой BSOD
http://13loads.ucoz.net/

0   Спам
(06.08.2011)
3. йцу
разумнее и быстрее использовать Bitmap.Canvas.CopyRect
но тем, кто ищет такие решения в инете, это ведь не поможет))?

0   Спам
(21.05.2011)
2. Заблудился_в_Сети
Следует заметить, что работа с массивом Pixels[] медленна, если изображение большое по разрешению.

0   Спам
(21.01.2009)
1. Евгений (жека)
что то у меня картинка пропадает )


Имя *:
Email:


Код *:

Copyright © 2008-2016 Программирование на Delphi для начинающих и не только

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации

Хостинг от uCoz

Автор проекта: Борисов Сергей

e-mail: save-x@yandex.ru

Связь с администрацией сайта