Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.06.2008, 14:28
Аватар для Genry
Genry Genry вне форума
Начинающий
 
Регистрация: 14.04.2008
Адрес: с. Россия, г. Курган
Сообщения: 160
Версия Delphi: 7
Репутация: 10
Вопрос Как отразить TBitmap с лева на право?

Как отразить TBitmap с лева на право?
Ответить с цитированием
  #2  
Старый 06.06.2008, 14:32
Аватар для Dux
Dux Dux вне форума
Активный
 
Регистрация: 18.03.2008
Сообщения: 206
Репутация: 16
По умолчанию

Помещаете на форму 2 компонента TImage и TButton:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Bitmap: TBitmap;
i, j: Integer;
begin
Image1.Picture.LoadFromFile('C:/example.bmp');
Bitmap:=TBitmap.Create;
with Image1 do
begin
Bitmap.Height:=Height;
Bitmap.Width:=Width;
for i:=0 to Width-1 do
for j:=0 to Height-1 do
Bitmap.Canvas.Pixels[Width-i, j]:=Image1.Canvas.Pixels[i,j];
Image2.Picture.Assign(Bitmap);
end;
end;
Ответить с цитированием
  #3  
Старый 06.06.2008, 16:39
:-) :-) вне форума
Прохожий
 
Регистрация: 06.06.2008
Сообщения: 7
Репутация: 10
По умолчанию

Да... спосибо
Ответить с цитированием
  #4  
Старый 10.06.2008, 12:30
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Код:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  PaintBox1.Canvas.CopyRect(Rect(PaintBox1.Width, 0, 0, PaintBox1.Height),
    Image1.Picture.Bitmap.Canvas,
    Image1.ClientRect);
end;

Последний раз редактировалось AlexSku, 10.06.2008 в 12:33.
Ответить с цитированием
  #5  
Старый 10.06.2008, 13:02
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Код:
procedure flip_horizontal(Quelle, Ziel: TBitMap);
 begin
   Ziel.Assign(nil);
   Ziel.Width  := Quelle.Width;
   Ziel.Height := Quelle.Height;
   StretchBlt(Ziel.Canvas.Handle, 0, 0, Ziel.Width, Ziel.Height, Quelle.Canvas.Handle,
     0, Quelle.Height, Quelle.Width, Quelle.Height, srccopy);
 end;

 procedure flip_vertikal(Quelle, Ziel: TBitMap);
 begin
   Ziel.Assign(nil);
   Ziel.Width  := Quelle.Width;
   Ziel.Height := Quelle.Height;
   StretchBlt(Ziel.Canvas.Handle, 0, 0, Ziel.Width, Ziel.Height, Quelle.Canvas.Handle,
     Quelle.Width, 0, Quelle.Width, Quelle.Height, srccopy);
 end;

(c) delphiworld
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #6  
Старый 10.06.2008, 13:03
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
По умолчанию

Код:
 procedure TForm1.Button1Click(Sender: TObject);
 var
   temp: TBitMap;
 begin
   temp := TBitMap.Create;
   try
     temp.Assign(Image1.Picture.BitMap);
     flip_vertikal(Temp, Image1.Picture.Bitmap);
   finally
     Temp.Free;
   end;
 end;
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025