Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Jpeg Resource (https://www.delphipraxis.net/68023-jpeg-resource.html)

nezumi 23. Apr 2006 16:08


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:

implementation
{$R mypics.res}

...
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.picture.bitmap.handle:=LoadBitMap(HInstance, 'bild1');
end;
Funktioniert, nur leider wird mir das Programm mit Bitmaps zu groß, deshalb möchte ich die Bilder in jpegs umwandeln.
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...

Klaus01 23. Apr 2006 16:11

Re: Jpeg Resource
 
die Unit jpg in uses einbinden
und wie gewohnt die Bilder laden.

Grüße
Klaus

nezumi 23. Apr 2006 16:20

Re: Jpeg Resource
 
Hallo Klaus,

also:

Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpg;
...
implementation

{$R *.dfm}
{$R mypics.RES}
Aber wie erfolgt dann der Aufruf?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
???????
end;
Ich kann doch dem Programm hier kaum was von bitmaps erzählen...

Klaus01 23. Apr 2006 16:33

Re: Jpeg Resource
 
Image1.picture.bitmap.handle:=LoadBitMap(HInstance , 'bild1');

Bitmap erkennt ob es sich um ein jpg oder bmp handelt.

Grüße
Klaus

nezumi 23. Apr 2006 16:38

Re: Jpeg Resource
 
Super, alles klar, vielen Dank.

nezumi 23. Apr 2006 17:28

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:
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.
Wenn ich auf den Knopp drück passiert gar nix (Wenn ich das Ganze mit einem Bitmap-File mache gehts).

Hat jemand eine Idee??

MrKnogge 23. Apr 2006 17:31

Re: Jpeg Resource
 
Hast du schonmal versucht dein Bild in der RS-Datei als Bitmap zu definieren ?

turboPASCAL 23. Apr 2006 17:41

Re: Jpeg Resource
 
Delphi-Referenz durchsuchenLoadBitMap läd keine Jpeg's, LoadBitMap läd Bitmaps.

MrKnogge 23. Apr 2006 17:43

Re: Jpeg Resource
 
Ich kann LoadBitMap in meiner OH nicht finden.

Die Muhkuh 23. Apr 2006 17:45

Re: Jpeg Resource
 
Haddu nicht in OH, muddu in Windows SDK gucken :stupid:

MrKnogge 23. Apr 2006 17:49

Re: Jpeg Resource
 
Dann wirst du wohl einen umweg über Streams machen müssen.

nezumi 23. Apr 2006 17:50

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.. (?)

turboPASCAL 23. Apr 2006 18:01

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:
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.
Tastenkombi. [Umschalt + F11] fügt dann die *.rc-Datei für dich hinzu, so das man sich das getippse spaart. ;)

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.

nezumi 23. Apr 2006 18:06

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