Usar JPG

Delphi

17/03/2004

BITMAP1 BITMAP IMAGE1.BMP

BITMAP2 BITMAP IMAGE2.BMP

BITMAP3 BITMAP IMAGE3.BMP

BITMAP4 BITMAP IMAGE4.BMP

BITMAP5 BITMAP IMAGE5.BMP

A primeira parte de cada linha é o identificador que você utilizará no código para capturar uma imagem em particular. A segunda parte é o tipo de resource (neste caso, bitmap). E a última parte é o nome do arquivo que deve ser utilizado para a imagem. Ist

{$R MYBMPS.RES}
Quando o executável está sendo linkeditado (um passo antes da compilação), o resource será automaticamente anexado ao executável. Para carregar as imagens do resource no array de bitmaps no programa, fiz simplesmente:

for a := 1 to NumBmps do
begin
Bmps[a] := TBitmap.Create;
Bmps[a].LoadFromResourceName(hInstance,´BITMAP´+IntToStr(a));
end;
É basicamente isto... A seguir a listagem da Unit principal:

unit Unit1a;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;
const
NumBmps = 5;
type
TForm1 = class(TForm)
Timer1: TTimer;
Edit1: TEdit;
CheckBox1: TCheckBox;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
Bmps : Array[1..NumBmps] of TBitmap;
SelectedBmp : Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
{$R MYBMPS.RES}
procedure TForm1.FormCreate(Sender: TObject);
var
a : Integer;
begin
for a := 1 to NumBmps do
begin
Bmps[a] := TBitmap.Create;
Bmps[a].LoadFromResourceName(hInstance,´BITMAP´+IntToStr(a));
end;
SelectedBmp := 1;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
a : Integer;
begin
for a := 1 to NumBmps do Bmps[a].Free;
end;
procedure TForm1.FormPaint(Sender: TObject);
var
x,y,w,h : Integer;
begin
w := Bmps[SelectedBmp].Width;
h := Bmps[SelectedBmp].Height;
for x := 0 to (Width div w) do
for y := 0 to (Height div h) do
Canvas.Draw(x*w,y*h,Bmps[SelectedBmp]);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Inc(SelectedBmp);
if SelectedBmp > NumBmps then SelectedBmp := 1;
Paint;
end;
end.

estou usando assim mas o executavel esta muito grande e eu gostaria de usar jpeg como fazer isto ou colocar numa dll

[color=red:704df1f553]Título editado pelo Moderador (AZ) - Removido: ´USAR ´[/color:704df1f553]


Fama

Fama

Curtidas 0

Respostas

Alesabino

Alesabino

17/03/2004

Transforme seu .res em uma DLL.
Depois carrege o JPEG dinamicamente.
Se não souber eu te explico.


BITMAP1 BITMAP IMAGE1.BMP BITMAP2 BITMAP IMAGE2.BMP BITMAP3 BITMAP IMAGE3.BMP BITMAP4 BITMAP IMAGE4.BMP BITMAP5 BITMAP IMAGE5.BMP A primeira parte de cada linha é o identificador que você utilizará no código para capturar uma imagem em particular. A segunda parte é o tipo de resource (neste caso, bitmap). E a última parte é o nome do arquivo que deve ser utilizado para a imagem. Ist {$R MYBMPS.RES} Quando o executável está sendo linkeditado (um passo antes da compilação), o resource será automaticamente anexado ao executável. Para carregar as imagens do resource no array de bitmaps no programa, fiz simplesmente: for a := 1 to NumBmps do begin Bmps[a] := TBitmap.Create; Bmps[a].LoadFromResourceName(hInstance,´BITMAP´+IntToStr(a)); end; É basicamente isto... A seguir a listagem da Unit principal: unit Unit1a; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls; const NumBmps = 5; type TForm1 = class(TForm) Timer1: TTimer; Edit1: TEdit; CheckBox1: TCheckBox; ListBox1: TListBox; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormPaint(Sender: TObject); procedure Timer1Timer(Sender: TObject); private Bmps : Array[1..NumBmps] of TBitmap; SelectedBmp : Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} {$R MYBMPS.RES} procedure TForm1.FormCreate(Sender: TObject); var a : Integer; begin for a := 1 to NumBmps do begin Bmps[a] := TBitmap.Create; Bmps[a].LoadFromResourceName(hInstance,´BITMAP´+IntToStr(a)); end; SelectedBmp := 1; end; procedure TForm1.FormDestroy(Sender: TObject); var a : Integer; begin for a := 1 to NumBmps do Bmps[a].Free; end; procedure TForm1.FormPaint(Sender: TObject); var x,y,w,h : Integer; begin w := Bmps[SelectedBmp].Width; h := Bmps[SelectedBmp].Height; for x := 0 to (Width div w) do for y := 0 to (Height div h) do Canvas.Draw(x*w,y*h,Bmps[SelectedBmp]); end; procedure TForm1.Timer1Timer(Sender: TObject); begin Inc(SelectedBmp); if SelectedBmp > NumBmps then SelectedBmp := 1; Paint; end; end. estou usando assim mas o executavel esta muito grande e eu gostaria de usar jpeg como fazer isto ou colocar numa dll [color=red:16f8943d60]Título editado pelo Moderador (AZ) - Removido: ´USAR ´[/color:16f8943d60]



GOSTEI 0
POSTAR