Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Зеркальное отображение


Автор: kamazz 8.10.2008, 20:28
Здравствуйте, господа!
Мне нужно сделать зеркально отражение картинки. Но у меня почему-то оно не работает, я нажимаю на кнопку, а вместо того чтобы зеркально отобразить - белый экран! Подскажите, что не так!!!

Вот код:

Код

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; 

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;

Автор: Snowy 9.10.2008, 12:20
Потому что знак забыл
Код

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;
Нужно от низа брать вверх, а не вниз. И от права влево, а не вправо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)