Foros Club Delphi

Foros Club Delphi (http://www.clubdelphi.com/foros/index.php)
-   OOP (http://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Convertir a BMP cualquier imagen (JPEG,BMP,GIF,PNG)) (http://www.clubdelphi.com/foros/showthread.php?t=92886)

ZiriusB 04-03-2018 17:06:59

Convertir a BMP cualquier imagen (JPEG,BMP,GIF,PNG))
 
Buenos dias, actualmente trabajo en un sistema en la que guardo la ficha de un trabajador, proveedores, empresas, debo guardar logos y fotografias.

Actualmente puedo guardar sin problemas archivos de extension JPG a BMP, pero al querer cargar una imagen BMP o PNG para guardarla me arroja error ya que lo que tengo es solo para guardar de JPG a BMP exclusivamente.
Código Delphi [-]
JPeg := TJPegImage.Create;
          JPeg.LoadFromFile(mpath);

          Bitmap := TBitmap.Create;
          Bitmap.Assign(JPeg);
          Bitmap.SaveToFile(CurrentDirectory+'\image\proveedores\'+edtid.text+'.bmp');

Desearia obtener ayuda para poder cargar una imagen en un Timage y poder guardarla en formato BMP o JPG, agradecido de la ayuda que puedan prestar.

Neftali [Germán.Estévez] 05-03-2018 08:27:51

No comentas qué versión de delphi estás utilizando, cosa importate. Tampoco si está utilizando VCL o FMX. A medida que las versiones han ido avanzando incluyen más units. En este caso la unit FMX.Graphics de FMX incluye soporte para este formato.
En el caso de VCL, puedes revisar la unit
Vcl.Imaging.pngimage donde también puesdes encontrar información sobre PNG.



Garada 05-03-2018 19:49:04

Debes cargar la imagen en un TPicture y Deplhi la cargará si reconoce el tipo. Al usar Tjpegimage estás limitando el formato.
Después asignas la propiedad Graphic que es el grafico genérico al tipo de imagen que quieres trabajar/grabar.

Código Delphi [-]
  Picture := TPicture.Create;
  Bitmap := TBitmap.Create;
  Jpg := TJpgImage.Create;
  try
    Picture.LoadFromFile(s);

    Bitmap.Assign(Picture.Graphic);
    Bitmap.SaveToFile(ChangeFileExt(s, '.bmp'));

    Jpg.Assign(Picture.Graphic);
    Jpg.SaveToFile(ChangeFileExt(s, '.jpg'));
  finally
    Picture.Free;
    Bitmap.Free;
    Jpg.Free;
  end;

dec 06-03-2018 08:48:06

Hola,

No sé si la unidad que recomienda Germán forma parte del proyecto Vampyre Imaging Library. Yo uso este último desde hace tiempo con unos resultados muy buenos. Permite, entre otras muchas cosas, convertir imágenes de un formato a otro, soportando decenas de formatos diferentes.


La franja horaria es GMT +2. Ahora son las 15:07:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi