Fiz correções na rotina!

{ Precisa das units Windows e JPEG }
procedure ConvertEmfToJpg(const AMetaFileName: string; AJPegFileName: string);
var
  lMetaFile: TMetaFile;
  lJpgFile: TJPEGImage;
  lData: THandle;
  lHandle: HPALETTE;
  lFormat: Word;
begin
  if not FileExists(AMetaFileName) then
    Exit;
  lMetaFile := TMetaFile.Create;
  try
    // Indica que o arquivo é EMF (Enhanced Meta File)
    lMetaFile.Enhanced := true;

    // Carrega o arquivo na memória
    lMetaFile.LoadFromFile(AMetaFileName);

    // Copia o conteúdo do arquivo para a área de transferência
    lMetaFile.SaveToClipboardFormat(lFormat, lData, lHandle);
    Clipboard.SetAsHandle(lData, lHandle);

    // Cria o JPEG onde o metafile será colado
    lJpgFile := TJPEGImage.Create;
    try
      lJpgFile.LoadFromClipboardFormat(
        lFormat, Clipboard.GetAsHandle(lFormat), 0);
      lJpgFile.SaveToFile(AJPEGFileName);
    finally
      lJpgFile.Free;
    end;
  finally
    lMetaFile.Free;
  end;
end;


Mais uma coisa, faça um uses tb para a unit Clipbrd!
Cheque se agora funciona!



________________________________
To: delphi-br@yahoogrupos.com.br
From: [EMAIL PROTECTED]
Date: Tue, 26 Aug 2008 16:38:19 -0300
Subject: Re: [delphi-br] Emf para Jpg


Sim meu amigo, ai que esta o mistério, as duas units estão na USES!
mostra seguinte mensagem de erro:

Types of actual and formal var parameters must be identical e para na linha

lMetaFile.SaveToClipboardFormat(CF_BITMAP, lData, lHandle);

Alex

----- Original Message -----
From: Rubem Nascimento da Rocha
To: delphi-br@yahoogrupos.com.br
Sent: Tuesday, August 26, 2008 4:33 PM
Subject: RE: [delphi-br] Emf para Jpg

HPALETTE não é um objeto, e sim um tipo de dados definido na unit Windows! 
Alias, eu coloquei um comentário dizendo que a rotina precisaria de duas units: 
a Windows e a JPEG!
Sds.

________________________________
> To: delphi-br@yahoogrupos.com.br
> From: [EMAIL PROTECTED]
> Date: Tue, 26 Aug 2008 16:26:05 -0300
> Subject: Re: [delphi-br] Emf para Jpg
>
>
> Amigo, não acha o objeto "hPallete", sabe em qual unit esta?nem na internet 
> eu achei.
>
> ----- Original Message -----
> From: Rubem Nascimento da Rocha
> To: delphi-br@yahoogrupos.com.br
> Sent: Tuesday, August 26, 2008 3:24 PM
> Subject: RE: [delphi-br] Emf para Jpg
>
> O Delphi possui suporte para arquivos WMF e EMF através da classe TMetaFile. 
> Criei uma rotina a seguir para fazer essa conversão.
>
> { Precisa das units Windows e JPEG }
> procedure ConvertEmfToJpg(const AMetaFileName: string; AJPegFileName: string);
> var
> lMetaFile: TMetaFile;
> lJpgFile: TJPEGImage;
> lData: THandle;
> lHandle: hPallete;
> begin
> if not FileExists(AMetaFileName) then
> Exit;
> lMetaFile := TMetaFile.Create;
> try
> // Indica que o arquivo é EMF (Enhanced Meta File)
> lMetaFile.Enhanced := true;
>
> // Carrega o arquivo na memória
> lMetaFile.LoadFromFile(AMetaFileName);
>
> // Copia o conteúdo do arquivo para a área de transferência
> lMetaFile.SaveToClipboardFormat(CF_BITMAP, lData, lHandle);
> Clipboard.SetAsHandle(lData, lHandle);
>
> // Cria o JPEG onde o metafile será colado
> lJpgFile := TJPEGImage.Create;
> try
> lJpgFile.LoadFromClipboardFormat(CF_BITMAP, Clipboard.GetAsHandle(CF_BITMAP), 
> 0);
> lJpgFile.SaveToFile(AJPEGFileName);
> finally
> lJpgFile.Free;
> end;
> finally
> lMetaFile.Free;
> end;
> end;
>
> Veja se isso te ajuda. Não testei, criei essa rotina apenas com o que eu li a 
> partir do help do Delphi.
>
> Boa sorte!
> Sds.
>
> ________________________________
> To: delphi-br@yahoogrupos.com.br
> From: [EMAIL PROTECTED]
> Date: Tue, 26 Aug 2008 14:44:45 -0300
> Subject: [delphi-br] Emf para Jpg
>
> Pessoal alguem conhece uma forma de converter uma imagem EMF em JPG pelo 
> Delphi??
>
> Obrigado.
>
> Alex
>
> __________________________________________________________
> Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de 
> relacionamentos com até 6,000 fotos!
> http://www.amigosdomessenger.com.br
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature 
> database 3385 (20080825) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>

__________________________________________________________
Instale a Barra de Ferramentas com Desktop Search e ganhe EMOTICONS para o 
Messenger! É GRÁTIS!
http://www.msn.com.br/emoticonpack

__________ Information from ESET NOD32 Antivirus, version of virus signature 
database 3385 (20080825) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

[As partes desta mensagem que não continham texto foram removidas]








_________________________________________________________________
Cansado de espaço para só 50 fotos? Conheça o Spaces, o site de relacionamentos 
com até 6,000 fotos!
http://www.amigosdomessenger.com.br

Responder a