Avatar billede kristofferb Nybegynder
08. juli 2005 - 01:06 Der er 3 kommentarer og
1 løsning

Lad to billeder gå op i ét

Lad os sige, at jeg har to billeder (eller flere), der ligger oven på hinanden, begge er transparent, og tilsammen viser det færdige billede, som jeg vil frem til.

Hvordan får jeg så de to billeder til at gå i ét, hvorefter jeg så på normal vis kan gemme det færdige billede som en *.bmp fil?

Altså, det jeg vil frem til er, at jeg kan tage to billeder, lave dem om til ét billede, og så gemme det på (eks.) denne måde:

savedialog1.Execute;
Image1.Picture.SaveToFile(savedialog1.FileName + '.bmp');
Avatar billede kristofferb Nybegynder
08. juli 2005 - 16:24 #1
Er der ingen, der ved det?
Avatar billede eht Nybegynder
09. juli 2005 - 10:21 #2
Du skal "tegne" de 2 billeder på et "canvas".

Et TImage har en canvas som der kan tegnes på.
Det kan gøres på forskellig måde: F.eks.


Image1.Canvas.Draw(0,0,MyBitmap);

eller

Image1.Picture.Bitmap.Canvas.Draw(0,0,MyBitmap);

Der er også en anden funktion der kan bruges:
Image1.Picture.Bitmap.Canvas.StretchDraw


Jeg loader altså de 2 billeder ind i et bitmap først. Sådan her:

var MyBitmap :TBitmap;
begin
MyBitmap := TBitmap.Create.
MyBitmap.LoadFromFile('c:/minfil.bmp');

Så får du nok også brug for at angive en TransparentColor.

Jeg ved godt at dette svar ikke er fyldesgørende, men jeg har ikke tid til at lave et helt færdigt eksempel lige nu.
Men prøv at kigge i hjælpen til disse funktioner eller søg lidt på internettet.
Avatar billede eht Nybegynder
09. juli 2005 - 14:59 #3
Nå nu lavede jeg alligevel et færdigt eksempel

procedure TForm1.Button1Click(Sender: TObject);
var MyBitmap:TBitmap;
begin
// Der er 3 TImage på formen, alle sat til Transparent := true og Autosize := true;

Image1.Picture.Bitmap.LoadFromFile('C:/Pic1.bmp');
Image2.Picture.Bitmap.LoadFromFile('C:/Pic2.bmp');

// NB. I dette tilfælde er Pic1 og Pic2 200 X 200 Pixels

MyBitmap := TBitmap.Create;

MyBitmap.Width := 200;
MyBitmap.Height := 200;

MyBitmap.Canvas.Draw(0,0,Image1.Picture.Bitmap);
MyBitmap.Canvas.Draw(0,0,Image2.Picture.Bitmap);

Image3.Picture.Assign(MyBitmap);
MyBitmap.Free;
Image3.Picture.SaveToFile('C:/Mixed.bmp');

end;
Avatar billede kristofferb Nybegynder
22. juli 2005 - 14:58 #4
Tusind tak. :-D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester