![]() |
BMP und JPG Bilder in Resource-Datei speichern und verwenden
Hallo!
Vor ein paar Tagen habe ich hier die Frage gestellt, wie man ich verschiedene Bilder in einer Datei speichern kann um dann aus dem Programm auf diese zuzugreifen. Bei der ganzen Sache geht es um die Übersetzung eines Programms, die Bilder einer Sprache sollen in eine gemeinsame Datei eingefügt werden. Ich bekam den Tipp, die Bilder in eine Resource-Datei zu compilieren und diese dann in eine DLL einzubinden. Je nach ausgewählter Sprache kann ich dann die jeweilige DLL in das Programm einbinden und die Bilder laden:
Delphi-Quellcode:
Ich habe es nun geschafft auf diese Art und Weise Bitmap Bilder zu verwenden. Aber wie funktioniert das ganze bei JPG Bildern? Ist es überhaupt korrekt, wie ich diese in die Resource-Datei einfüge:
var DLLHandle: THandle;
begin DLLHandle := LoadLibrary('Bilder_DE.dll'); TBitmap.LoadFromResourceID(DLLHandle, 1); end;
Code:
Das man Bitmaps mit "BITMAP" einbindet weiß ich, "JPG" habe ich dann einfach mal geraten. Der Compiler hat jedenfalls nicht gemeckert. Ist das korrekt?
1 BITMAP "test.bmp"
2 JPG "test.jpg" Und wie kann ich dann auf die JPG Bilder zugriefen. TJPGImage hat keine LoadFromResourceID Methode. Wie kann ich also einem TImage ein JPG Bild aus der Resource Datei zuweisen? Noch eine andere Frage: Wenn ich eine Resource Datei nicht in eine DLL, sondern direkt in den Programmquellcode einbinde ({$R bilder.res}) wie kann ich dann auf die Bilder darin zugreifen? Was müsste ich dann für einen Handel verwenden? Besten Dank Ares [edit=SirThornberry]Code-Tags durch Delphi-Tags ersetzt. Mfg, SirThornberry[/edit] |
Re: BMP und JPG Bilder in Resource-Datei speichern und verwe
für das JPEG kannst du dir einen eigenen Typ definieren (bzw. JPG lassen).
Um die Ressource dann in ein TJPEGImage zu laden solltest du die Ressource vorher in einen TResourceStream laden und dann
Delphi-Quellcode:
JPEGImage.LoadFromStream(TheRessourceStream);
|
Re: BMP und JPG Bilder in Resource-Datei speichern und verwe
Code:
für jpg und alle weiteren nicht genormten formate, nimmt man RCDATA.
1 RCDATA "1.jpg"
|
Re: BMP und JPG Bilder in Resource-Datei speichern und verwe
Zitat:
Code:
var jpg1:Tjpegimage;
stream:TResourceStream; begin jpg1 := TJPEGImage.Create; try Stream := TResourceStream.Create(hinstance, 'jpg1', RT_RCDATA); try Jpg1.LoadFromStream(Stream); Image1.Picture.Bitmap.Assign(jpg1); finally Stream.Free; end; finally jpg1.Free; end; Zitat:
Zitat:
weiterhin empfehle ich dir zum erstellen der rc-dateien meinen rfe ( ![]() ![]() Gruß Frank |
Re: BMP und JPG Bilder in Resource-Datei speichern und verwe
Und das Ganze jetzt noch mal für die DLL: ;-)
Delphi-Quellcode:
P.S.: Warum [Code]? Wir haben doch [Delphi]?
var jpg1:Tjpegimage;
stream:TResourceStream; begin jpg1 := TJPEGImage.Create; try Stream := TResourceStream.Create(DLLHandle, 'jpg1', RT_RCDATA); try Jpg1.LoadFromStream(Stream); Image1.Picture.Bitmap.Assign(jpg1); finally Stream.Free; end; finally jpg1.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz