Текущий архив: 2002.11.11;
Скачать: CL | DM;
Внизграфика Найти похожие ветки
← →
Yasha (2002-10-31 11:54) [0]Подскажите пожалуйста, существует ли какой-нибудь компонент для создания "эффектов перехода" (как в слайдах MS Power Point) для объекта TImage
← →
Vint (2002-10-31 13:26) [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 - градиент в %
Страницы: 1 вся ветка
Текущий архив: 2002.11.11;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.007 c