Ir para conteúdo
Fórum Script Brasil
  • 0

Convert


Renyo

Pergunta

E aí pessoal boa tarde...

é um seguinte eu preciso converter uma imagem de qualquer tipo para JPG...

e depois disso jogar para o ClipBoard...

ou seja.. preciso converter antes de jogar para o ClipBoard...

bem eu acho....

como fazer, thank's? :rolleyes:

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Dá para aproveitar um pouco do que utilizei num outro post, ainda estes dias (link), e criar uma nova função para conversão de imagens de um formato para outro. Eu utilizo a unit GraphicEx que possibilita a carga de muitos outros formatos além dos tradicionais (jpg, bmp, ico), então testei com TIF e WMF e funcionou direitinho (teve uma imagem TIF que não consegui abrir, então depende de a classe estar preparada para a versão em questão) - veja se funcionará para o que você precisa.

É uma função genérica. Voce passa o path\nome do arquivo da imagem e o resultado (imagem de saída) depende da classe que você passa em DstPic (TBitmap, TJPEGImage - teoricamente poderia ser qualquer classe de imagem descendente de TGraphic):

function ConvertImage(SrcName :string; DstPic :TGraphic) :boolean;
var
  Picture :TPicture;
  ImageBMP :TBitmap;
begin
  Result := False;
 // Criamos um TPicture para ler "virtualmente" qualquer tipo de imagem
  Picture := TPicture.Create;
  try
   // Carregamos a imagem a partir do arquivo indicado em SrcName
    Picture.LoadFromFile(SrcName);
   // O tipo TBitmap, aparentemente, é intercambiável entre os diversos formatos.
   // Deste modo, conseguiremos, por exemplo carregar um WMF e gravá-lo em JPG - já
   // diretamente não seria possível (pelo menos não consegui rsrs)
    ImageBMP := TBitmap.Create;
    try
     // Ajustamos as dimensões do bitmap
      ImageBMP.Width := Picture.Width;
      ImageBMP.Height := Picture.Height;
     // Desenhamos no bitmap a imagem carregada
      ImageBMP.Canvas.Draw(0, 0, Picture.Graphic);
     // "Forçamos" a cópia da imagem no bitmap para o tipo de imagem passada
     // via parâmetro DstPic. A classe TGraphic é base para varias classes
     // que manipulam imagem - assim, teoricamente, qualquer que seja a classe de 
     // imagem passada como parâmetro, esta receberá a imagem contida na origem
      DstPic.Assign(ImageBMP);
     // Indicamos que a conversão transcorreu sem problemas
      Result := True;
    finally
      ImageBMP.Free;
    end;
  finally
    Picture.Free;
  end;
end;
Segue um exemplo de uso do que você pediu, com alguns adendos apenas para mostrar outras manipulações com a imagem (marquei com * o que não lhe interessa ;) ):
procedure TForm1.Button3Click(Sender: TObject);
var
  ImageBMP :TBitmap; (*)
  ImageJpg :TJPEGImage;
begin
  if OpenPictureDialog1.Execute then
  begin
    ImageBMP := TBitmap.Create; (*)
    ImageJpg := TJPEGImage.Create;
    try
      if ConvertImage(OpenPictureDialog1.FileName, ImageJpg) then
      begin
       // Utilizamos um TImage para mostrar imagem na tela mas não é obrigatório
        Image1.Picture.Assign(ImageJpg); (*)
       // Para gravar no disco a imagem convertida para JPG...
        ImageJpg.SaveToFile('c:\temp\teste.jpg'); (*)
       // Para gravar no disco como BMP a partir do JPG convertido
        ImageBMP.Assign(ImageJpg); (*)
        ImageBMP.SaveToFile('c:\temp\teste.bmp'); (*)
       // ...
       // Para copiar para o ClipBoard
        Clipboard.Assign(ImageJpg);
      end;
    finally
      ImageJpg.Free;
      ImageBMP.Free; (*)
    end;
  end;
end;

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...