Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild auf Bitmap kopieren (https://www.delphipraxis.net/82796-bild-auf-bitmap-kopieren.html)

Antigo 19. Dez 2006 13:22


Bild auf Bitmap kopieren
 
Hi,
folgende Situation: Ich male mit Canvas auf ein Bitmap, um es anschliessend mit bitblt auf eine paintbox zu kopieren. Jetzt möchte ich allerdings statt der weissen oder wie auch immer einfarbigen Malfläche des Bitmaps, ein Hintergrundbild einfügen, auf das ich dann meine Sachen male.
Es gibt zwar die Funktion LoadFromFile, aber hier gibt es zwei Probleme:
Erstens möchte ich das Bild in das Programm einbinden und nicht lose mitrumschleppen.
Zweitens möchte ich keine bmp datei benutzen, da sich der Speicherverbrauch gegenüber jpg verhundertfacht.

Also, wie binde ich ein JPG Bild in mein Programm ein und wie kopiere ich es anschliessend auf mein TBitmap?


Vielen Dank schonmal im vorraus :)

Skullschildi 19. Dez 2006 13:31

Re: Bild auf Bitmap kopieren
 
soweit ich weiss wird das bild, wenn es dem programm beim compilieren schon bekannt is(in nem image geladen) in die exe eingebaut.

Antigo 19. Dez 2006 13:34

Re: Bild auf Bitmap kopieren
 
jo das stimmt, aber wie komme ich an das bild das in dem Image liegt? ich hab schon versucht mit bitblt das ganze auf ein anderes bitmap zu kopieren in dem ich auf image.picture.bitmap.canvas.handle ( :roll: ) zugegriffen hab, aber da kam nichts bei rum.

Namenloser 19. Dez 2006 13:35

Re: Bild auf Bitmap kopieren
 
Such mal nach "Ressource" ([dp]res*ource[/dp])

Damit kannst du Bilder in die Exe einkompilieren. Ansonsten gäbe es noch die möglichkeit einer TImagelist. Dasd bietet sich aber nur bei kleinen Grafiken mit der gleichen größe an.

Antigo 19. Dez 2006 14:14

Re: Bild auf Bitmap kopieren
 
ok ich hab das Bild jetzt als JPG File in einem TImage in mein Projekt eingebunden. Teil 1 des Problems ist also gelöst. Teil 2 besteht noch. WIe kann ich den Inhalt des Bildes auf ein TBitmap zeichnen?

SirThornberry 19. Dez 2006 14:24

Re: Bild auf Bitmap kopieren
 
TGraphic hat eine Methode Draw im Protected abschnitt. Mit ZielBitmap.Canvas.Draw kannst du zum Beispiel eine beliebige TGraphic auf die Canvas ausgeben. Somit hast du das Bild auf der Canvas und kannst es dann verwenden.
Im übrigen ist ein JPEG auch nur im Dateiformat kleiner. Sobald es darum geht dass das eigentliche Bild berechnet/hergestellt wurde verbraucht es im Speicher genau so viel weil es genau so viel Bildpunkte hat.

Antigo 19. Dez 2006 14:52

Re: Bild auf Bitmap kopieren
 
ok dann werde ich das malausprobieren. danke :)

Es geht mir beim Speicher einfach nur darum, das die exe datei nicht unnötig groß werden soll.

dank an alle ;)

Antigo 19. Dez 2006 15:50

Re: Bild auf Bitmap kopieren
 
tja das ganze hat leider nicht funktioniert.

Delphi-Quellcode:
background.Canvas.Draw(0,0,hintergrund.Picture.Graphic);
backround ist ein TBitmap, hintergrund eine TImage.

Das Bitmap bleibt leider völlig weiss :/

edit: sry hat sich erledigt, ich hatte nur ein bsclear vergessen, :oops:

danke nochmal

Cöster 19. Dez 2006 16:45

Re: Bild auf Bitmap kopieren
 
Mit Image1.Picture.Bitmap erhält man imho am einfachsten das Bitmap eines Images.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz