Converter imagens JPG para BMP e BMP para JPG com Delphi
Veja nesta dica como converter imagens JPG para BMP e BMP para JPG com Delphi.
Olá galera, nesta dica irei mostrar como converter imagens em JPG para BMP, e fazer o BMP para JPG.
Vamos ao exemplo:
Adicione dois Buttons(BtnJPG_BMP, BtnBMP_JPG) e um OpenDialog
Iremos dar Uses JPeg.
Irei implementar dois procedures.
procedure ConvertJPG_BMP(xFile: string);
procedure ConvertBMP_JPG(xFile: string; Quality : Integer );
ConvertJPG_BMP
procedure TFrmPrincipal.ConvertJPG_BMP(xFile: string);
var
BMP: TBitmap;
JPG: TJPegImage;
begin
if ExtractFileExt(xFile) <> '.jpg' then
begin
ShowMessage('Formato diferente de jpg'+#13+
'Formato atual : ' + ExtractFileExt(xFile));
Exit;
end;
JPG := TJPegImage.Create;
try
JPG.LoadFromFile(xFile);
BMP := TBitmap.Create;
try
BMP.Assign(JPG);
BMP.SaveToFile(ChangeFileExt(xFile, '.bmp'));
finally
FreeAndNil(BMP);
end;
finally
FreeAndNil(JPG);
end;
end;
ConvertBMP_JPG
procedure TFrmPrincipal.ConvertBMP_JPG(xFile: string; Quality : Integer );
var
BMP: TBitmap;
JPG: TJPegImage;
begin
if ExtractFileExt(xFile) <> '.bmp' then
begin
ShowMessage('Formato diferente de bmp'+#13+
'Formato atual : ' + ExtractFileExt(xFile));
Exit;
end;
BMP := TBitmap.Create;
try
BMP.LoadFromFile(xFile);
JPG := TJPegImage.Create;
try
JPG.CompressionQuality := Quality;
JPG.Assign(BMP);
JPG.SaveToFile(ChangeFileExt(xFile, '.jpg'));
finally
FreeAndNil(JPG);
end;
finally
FreeAndNil(BMP);
end;
end;
Iremos implementar agora o clique dos dois Buttons
BtnBMP_JPG
procedure TFrmPrincipal.BtnBMP_JPGClick(Sender: TObject);
begin
{Filtrar os arquivos do OpenDialog1 para exibir somente BMP}
OpenDialog1.Filter := 'bmp|*.bmp';
if OpenDialog1.Execute then
ConvertBMP_JPG(OpenDialog1.FileName, 100);
end;
BtnJPG_BMP
procedure TFrmPrincipal.BtnJPG_BMPClick(Sender: TObject);
begin
{Filtrar os arquivos do OpenDialog1 para exibir somente JPG}
OpenDialog1.Filter := 'jpg|*.jpg';
if OpenDialog1.Execute then
ConvertJPG_BMP(OpenDialog1.FileName);
end;
Obs : Será criado um arquivo com o mesmo nome para as duas rotinas, porém com a extensão oposta, bmp para jpg, e jpg para bmp
Fico por aqui ate à próxima Quick Tips.
Um abraço
Wesley Y
wyamazack@rwsolution.com.br
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo