Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зеркальное отображение 
:(
    Опции темы
kamazz
Дата 8.10.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.10.2008

Репутация: нет
Всего: нет



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

Вот код:

Код

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;

PM MAIL   Вверх
Snowy
Дата 9.10.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Потому что знак забыл
Код

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;
Нужно от низа брать вверх, а не вниз. И от права влево, а не вправо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0395 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.