Você está na página 1de 4

Imagens em uma DLL 01

Como transportar imagens em uma DLL

Essa dica usou um bmp mas pode ser adaptada pra jpg, gif, etc ...

Via Delphi :

- Crie um arquivo de recursos (.RES) contendo os Bitmaps.


- Use o Image Editor do Delphi para criar este arquivo.

- Salve-o com o nome BMPS.RES na pasta onde será salvo o projeto do Delphi;

- Crie um novo projeto no Delphi;


- Remova todos os forms do projeto;

- Salve este projeto com o nome DLLBmp.dpr;

- Abra o arquivo de projeto (DLLBmp.dpr) e altere para ficar somente com as linhas
abaixo:

{$R BMPS.RES}
library DLLBmp;

end.

- Compile o projeto (Ctrl+F9). Será criado oarquivo DLLBmp.DLL.

- Feche o projeto atual e crie um novo projeto;


- Salve-o na mesma pasta que salvou o anterior, mas com outro nome qualquer;

- Coloque no form um Edit e um Button;

- No evento OnClick do Button coloque o código abaixo:

procedure TForm1.Button1Click(Sender: TObject);


var Bmp: TBitmap;
HandleDLL: THandle;
begin
Imagens em uma DLL 02

{ Carrega a DLL }
HandleDLL := LoadLibrary('DLLBmp.DLL');
if HandleDLL = 0 then
ShowMessage('Não foi possível carregar DLLBmp.DLL')
else
try
Bmp := TBitmap.Create;
try
Bmp.Handle := LoadBitmap(HandleDLL, PChar(Edit1.Text));
if Bmp.Handle = 0 then
ShowMessage('Não foi possível carregar o Bitmap.')
else
{ Pinta o Bitmap no form }
Canvas.Draw(0, 0, Bmp);
finally
Bmp.Free;
end;
finally
{ Libera a DLL }
FreeLibrary(HandleDLL);
end;
end;
======================= Para testar =======================
- Execute este projeto;

- Digite no Edit1 o nome que foi dado ao Bitmap no arquivo de recursos (.RES);
- Clique no botão. O bitmap deverá ser pintado no form.
Veja todos antes de tirar a sua conclusão

abraço
Imagens em uma DLL 03

Gravando e lendo imagens em dll's

Código

{Primeiramente crie um novo arquivo de resources (*.res) no Image editor do Delphi (menu
tools | Image editor), nele que estará guardada a imagem. Crie um Bitmap e renomei-o para
figura. salve o arquivo como imagem.res e feche o Image Editor. Crie uma Dll no Delphi,
vá no menu (file | New | DLL). Salve a Dll no mesmo local do arquivo Res e mude o código
fonte da Dll conforme o texto abaixo: }

library icones;

{$R imagem.res}

begin
end.

{Compile a Dll. Crie um novo projeto, no formulário coloque um objeto image e um button.
No evento onclick do botão escreva o código abaixo: }

procedure TForm1.Button1Click(Sender: TObject);


var
fig:thandle;
begin
fig:=loadlibrary('figura.dll');
try
if fig <> 0 then
image1.Picture.Bitmap.LoadFromResourceName(fig,'figura')
else
showmessage('DLL não encontrada');
except
freelibrary(fig);
end;
end;
Imagens em uma DLL 04

Primeiramente gostaria de fazer um comentário antes de responder ao que você


solicitou. Não pense que os colaboradores daqui do Fórum não dão atenção ao que se
solicita em termos de dúvidas. Muitas vezes nem todos tem a oportunidade de ler a
grande quantidade de informação que é depositada diariamente aqui e, também, muitos
antes de responder precisam pesquisar, afim de garantir a veracidade das informações
passadas. Não se chateie com o meu comentário, OK!
Com relação a sua dúvida, é possível usar arquivos com a extensão JPG e/ou BMP com
qualquer resolução e quantidade de cores. Mas no image editor existe uma limitação no
número de cores que se pode usar para criar um arquivo RES. No meu exemplo eu usei 2
arquivos JPG e 1 BMP com 16 milhões de cores/cada.
Agora, respondendo a sua pergunta... segue um passo-a-passo para criar a ´resource
DLL´:

1 - Crie uma pasta em seu disco rígido - C:\Resdll


2 - Crie um arquivo texto com o nome ´resdll.rc´ (por exemplo) - Abra esse arquivo (com
o notepad.exe) e digite:

Image01 JPEG ´C:\Resdll\nomedoarquivo01.jpg´


Image02 JPEG ´C:\Resdll\nomedoarquivo02.jpg´
Image03 bitmap ´C:\Resdll\nomedoarquivo03.bmp´

3 - Salve as alterações no arquivo .rc e no prompt do MSDOS (Via Windows) entre no


diretório que contém o seu arquivo .rc e digite: brcc32 resdll.rc
4 - A partir desse momento o compilador terá criado o arquivo ´resdll.res´ em seu
diretório.
5 - Abra o Borland Delphi, Crie uma nova DLL e acrescente jpeg na seção uses da DLL.
6 - Substitua {$R *.res} por {$R resdll.RES}
7 - Salve o projeto da DLL (na mesma pasta que contém o arquivo .res) com o nome
ResDll, vá no menu Project e selecione a opção Build.
8 - Pronto! O Delphi irá criar o arquivo resdll.dll
9 - Para visualizar o ´conteúdo´ da sua DLL, procure por um utilitário chamado Resource
Explorer na Internet (existem outros).

Obs: Mas atenção com o tamanho do arquivo... Quanto mais recursos incluir maior será
o tamanho final do arquivo.dll... No meu exemplo, a DLL passou rapidamente de 600Kb
p/ 2.23 MB (após incluir o BMP)

Por hora é só o que sei sobre a sua solicitação! Um abraço

Você também pode gostar