Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

графика [D5, Win95/98]


Yasha ©   (2002-10-31 11:54:00) 

Подскажите пожалуйста, существует ли какой-нибудь компонент для создания "эффектов перехода" (как в слайдах MS Power Point) для объекта TImage


Vint   (2002-10-31 13:26:00) [1]

Наслаждайся...

procedure TForm1.Button1Click(Sender: TObject);
const
count = 100;
var
i: integer;
x, y: integer;

Pic_Temp, Pic_Fon, Pic_Intro : TBitMap;
p_t, p_f, p_i : PByteArray;



begin


Pic_Temp := TBitMap.Create; // итоговая картинка
Pic_Fon := TBitMap.Create; // картинка - фон
Pic_Intro := TBitMap.Create; // картинка заставки

Pic_Temp.PixelFormat := pf24bit;
Pic_Fon.PixelFormat := pf24bit;
Pic_Intro.PixelFormat := pf24bit;

Pic_Fon.Width := 489;
Pic_Fon.Height := 254;
Pic_Temp.Height := 254;
Pic_Temp.Width := 489;
Pic_Intro.Height := 254;
Pic_Intro.Width := 489;

// загрузили фон
bitblt(Pic_Fon.Canvas.Handle, 0, 0, 489, 254,Form1.Image1.Canvas.Handle, 0, 0, SRCCOPY);
// загружаем картинку - заставку
bitblt(Pic_Intro.Canvas.Handle, 0, 0, 489, 254,Form1.Image2.Canvas.Handle, 0, 0, SRCCOPY);

for i := 1 to count do
begin


for y := 0 to Pic_Temp.Height - 1 do
begin
p_t := Pic_Temp.ScanLine[y];
p_f := Pic_Fon.ScanLine[y];
p_i := Pic_Intro.ScanLine[y];

for x := 0 to Pic_Temp.Width * 3 - 1 do
p_t^[x] := round((p_f^[x] * (count - i) + p_i^[x] * i) / count);
end;




Form1.Image1.Canvas.Draw(0, 0, Pic_Temp);

Application.ProcessMessages;
if Application.Terminated then break;
end;

// DesktopCanvas.Draw(190, 167, Pic_Intro);

Pic_Fon.Free;
Pic_Intro.Free;
Pic_Temp.Free;


end;

где count - градиент в %


Наверх

Титульная страница Поиск, карта сайта Написать письмо