AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi BMP und JPG Bilder in Resource-Datei speichern und verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

BMP und JPG Bilder in Resource-Datei speichern und verwenden

Ein Thema von Ares · begonnen am 21. Aug 2006 · letzter Beitrag vom 21. Aug 2006
Antwort Antwort
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

BMP und JPG Bilder in Resource-Datei speichern und verwenden

  Alt 21. Aug 2006, 13:54
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:
var DLLHandle: THandle;

begin
  DLLHandle := LoadLibrary('Bilder_DE.dll');
  TBitmap.LoadFromResourceID(DLLHandle, 1);
end;
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:

Code:
1 BITMAP "test.bmp"
2 JPG "test.jpg"
Das man Bitmaps mit "BITMAP" einbindet weiß ich, "JPG" habe ich dann einfach mal geraten. Der Compiler hat jedenfalls nicht gemeckert. Ist das korrekt?

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]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: BMP und JPG Bilder in Resource-Datei speichern und verwe

  Alt 21. Aug 2006, 13:59
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
JPEGImage.LoadFromStream(TheRessourceStream);
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#3

Re: BMP und JPG Bilder in Resource-Datei speichern und verwe

  Alt 21. Aug 2006, 14:02
Code:
1 RCDATA "1.jpg"
für jpg und alle weiteren nicht genormten formate, nimmt man RCDATA.
  Mit Zitat antworten Zitat
Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#4

Re: BMP und JPG Bilder in Resource-Datei speichern und verwe

  Alt 21. Aug 2006, 14:03
Zitat von Ares:
Code:
var DLLHandle: THandle;

begin
  DLLHandle := LoadLibrary('Bilder_DE.dll');
  TBitmap.LoadFromResourceID(DLLHandle, 1);
end;
Ich habe es nun geschafft auf diese Art und Weise Bitmap Bilder zu verwenden. Aber wie funktioniert das ganze bei JPG Bildern?
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 von Ares:
Ist es überhaupt korrekt, wie ich diese in die Resource-Datei einfüge:

Code:
1 BITMAP "test.bmp"
2 JPG "test.jpg"
Das man Bitmaps mit "BITMAP" einbindet weiß ich, "JPG" habe ich dann einfach mal geraten. Der Compiler hat jedenfalls nicht gemeckert. Ist das korrekt?
imho eigentlich RCData, aber wenn der compiler nicht gemeckert hat...
Zitat von Ares:
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?
siehe mein obiges Beispiel...

weiterhin empfehle ich dir zum erstellen der rc-dateien meinen rfe ( http://rfe.sf.net ), wie man die eine oder andere Resource läd, findest du als resload.zip hier

Gruß Frank
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#5

Re: BMP und JPG Bilder in Resource-Datei speichern und verwe

  Alt 21. Aug 2006, 15:20
Und das Ganze jetzt noch mal für die DLL:

Delphi-Quellcode:
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;
P.S.: Warum [Code]? Wir haben doch [Delphi]?
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 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