![]() |
Jpeg Resource
Hallihallo,
Habe für mehrere Bitmaps eine Resource erstellt. Die Bilder sollen nacheinander in einem Image Fenster angezeigt werden. Die wesentlichen Programmbestandteile lauten:
Delphi-Quellcode:
Funktioniert, nur leider wird mir das Programm mit Bitmaps zu groß, deshalb möchte ich die Bilder in jpegs umwandeln.implementation {$R mypics.res} ... procedure TForm1.Button1Click(Sender: TObject); begin Image1.picture.bitmap.handle:=LoadBitMap(HInstance, 'bild1'); end; Kann mir jemand sagen, wie dann der Aufruf erfolgt? ("Image1.picture.jpeg" gibts ja nicht). Sorry wenn die Frage blöd sein sollte, bin noch relativ grün... |
Re: Jpeg Resource
die Unit jpg in uses einbinden
und wie gewohnt die Bilder laden. Grüße Klaus |
Re: Jpeg Resource
Hallo Klaus,
also:
Delphi-Quellcode:
Aber wie erfolgt dann der Aufruf?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpg; ... implementation {$R *.dfm} {$R mypics.RES}
Delphi-Quellcode:
Ich kann doch dem Programm hier kaum was von bitmaps erzählen...
procedure TForm1.Button1Click(Sender: TObject);
begin ??????? end; |
Re: Jpeg Resource
Image1.picture.bitmap.handle:=LoadBitMap(HInstance , 'bild1');
Bitmap erkennt ob es sich um ein jpg oder bmp handelt. Grüße Klaus |
Re: Jpeg Resource
Super, alles klar, vielen Dank.
|
Re: Jpeg Resource
Funzt leider immer noch nicht, daher beschreib ich nochmal ganz genau, was ich gemacht hab:
1. Im Ordner C:\temp befindet sich Datei "bild1.jpeg". Dort Textfile angelegt mit dem Eintrag: mypics JPEG "bild1.jpeg" Datei gespeichert unter "pics.rc" und mit BRCC32 "pics.res" file erstellt. 2. Dann zu Formular mit nur einem Button und einem Image-Objekt folgenden Quellcode:
Delphi-Quellcode:
Wenn ich auf den Knopp drück passiert gar nix (Wenn ich das Ganze mit einem Bitmap-File mache gehts).
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg; type TForm1 = class(TForm) Button1: TButton; Image1: TImage; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} {$R pics.res} procedure TForm1.Button1Click(Sender: TObject); begin Image1.picture.bitmap.handle:=LoadBitMap(HInstance,'mypics'); end; end. Hat jemand eine Idee?? |
Re: Jpeg Resource
Hast du schonmal versucht dein Bild in der RS-Datei als Bitmap zu definieren ?
|
Re: Jpeg Resource
![]() |
Re: Jpeg Resource
Ich kann LoadBitMap in meiner OH nicht finden.
|
Re: Jpeg Resource
Haddu nicht in OH, muddu in Windows SDK gucken :stupid:
|
Re: Jpeg Resource
Dann wirst du wohl einen umweg über Streams machen müssen.
|
Re: Jpeg Resource
Hallo MrKnogge,
weiß nicht genau was Du meinst, aber wenn ich eine rc Datei schreibe mit dem Inhalt mypics BITMAP "bild1.jpeg" oder mypics BITMAP "bild1" wird mir erst gar keine ".res" Datei erstellt. Wenn ich aber schreibe [ mypics JPEG "bild1.jpeg" ] bekomme ich zwar eine ".res" Datei, aber mein Programm funzt nicht... Wenn ich eine ".res" Datei bekomme, muss es doch irgendwie möglich sein, die so in meinem Programm zu verwursten, dass die bilder auch angezeigt werden.. (?) |
Re: Jpeg Resource
Ein Bleistift:
Die Datei JpegImages.rc :
Code:
;ResourceName, ResourceTyp, ResourceFile
ABC JPGIMAGE "C:\Windows\ABC.jpg" MYPIC JPGIMAGE "MyPictures.jpg" in der *.dpr Datei:
Delphi-Quellcode:
Tastenkombi. [Umschalt + F11] fügt dann die *.rc-Datei für dich hinzu, so das man sich das getippse spaart. ;)
program Test;
// Die Resourcendatei der Bilder {$R 'JpegImages.res' 'JpegImages.rc'} uses Forms, JPEGTestProgramm1001 in 'JPEGTestProgramm1001.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.Title := 'Test'; Application.CreateForm(TForm1, Form1); Application.Run; end.
Delphi-Quellcode:
unit JPEGTestProgramm1001; // ;-)
interface uses Windows, SysUtils, StdCtrls, Controls, ExtCtrls, Classes, Forms, JPEG; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var JPGImage: TJPEGImage; ResStrm: TResourceStream; begin // Da die Unit JPEG kein LoadFromResource unterstütz // macht man einen kleinen Umweg über den ResourceStream ResStrm := TResourceStream.Create(hInstance, 'MYPIC', 'JPGIMAGE'); // Ein Jpeg(Image) erstellen JPGImage := TJPEGImage.Create; // das Bild aus dem Stream laden JPGImage.LoadFromStream(ResStrm); // ... und einem TImage zuweisen und anzeigen lassen Image1.Picture.Assign(JPGImage); // Freigeben JPGImage.Free; ResStrm.Free; end; end. |
Re: Jpeg Resource
Coool, vielen Dank turboPASCAL, werd ich gleich mal ausprobieren. :bounce2:
Ob ich alles kapier weiß ich noch nicht... :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:24 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