Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-01-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.329
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cuando haces esto:
Código Delphi [-]
UniQueryIMG.ParamByName('FOTO').Assign(Image4.bitmap);

Convierte antes la image del componente TImage a JPG o a PNG (ambos formatos con compresión).
Para eso puedes encontrar muchos códigos en los foros.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #2  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Cuando haces esto:
Código Delphi [-]
UniQueryIMG.ParamByName('FOTO').Assign(Image4.bitmap);

Convierte antes la image del componente TImage a JPG o a PNG (ambos formatos con compresión).
Para eso puedes encontrar muchos códigos en los foros.
Efectivamente pero debo cambiar el formato
Código Delphi [-]
UniQueryIMG.ParamByName('FOTO').Assign(Image4.jpeg);
o
UniQueryIMG.ParamByName('FOTO').Assign(Image4.picture);[/delphi]
para poder hacer eso debo colocar en el uses el 'JPEG' pero me da error al parecer no lo reconoce o me falta algun componente.


al agregar el jpeg en uses me da error de "f2063 could not compile used unit 'jpeg'"
Responder Con Cita
  #3  
Antiguo 10-01-2023
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.329
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Debes convertir la imagen que hay en el TImage.
Aquí tienes una función para hacerlo en FMX:
https://stackoverflow.com/questions/...eg-compression
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Debes convertir la imagen que hay en el TImage.
Aquí tienes una función para hacerlo en FMX:
https://stackoverflow.com/questions/...eg-compression

cualquiera de los métodos que valla aplicar requiere que coloque en el uses el JPEG y es allí donde estoy teniendo problema (adjunto imagen de Error)

Última edición por giantonti1801 fecha: 29-03-2023 a las 20:43:36.
Responder Con Cita
  #5  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Debes convertir la imagen que hay en el TImage.
Aquí tienes una función para hacerlo en FMX:
https://stackoverflow.com/questions/...eg-compression
Como puedo aplicar este código a mi proyecto ya que la imagen la tengo en IMAGE1.BITMAP
Código Delphi [-]
var
  NewBitmap: TBitmap;
  MS1 : TMemoryStream;
  Surf: TBitmapSurface;
  JpgQuality : TBitmapCodecSaveParams;
begin
  NewBitmap := TBitmap.CreateFromFile('input.bmp');
  MS1 := TMemoryStream.Create;
  Surf := TBitmapSurface.create;

  try
    MS1.Position := 0;
    Surf.Assign(NewBitmap);
    JpgQuality.Quality := 100;

    if not TBitmapCodecManager.SaveToStream(MS1, Surf, '.jpg', @JpgQuality) then
      raise EBitmapSavingFailed.Create('Error saving Bitmap to jpg');

    MS1.SaveToFile('ouput.jpg');
  finally
    NewBitmap.Free;
    MS1.Free;
    Surf.Free;
  end;
end;

ya logre solucionar el problema que tenía con el JPEG tuve que agregar estos USES
Código Delphi [-]
System.ImageList, FMX.Surfaces
Responder Con Cita
  #6  
Antiguo 10-01-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.093
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Te aconsejo que para que ocupe menos la imagen la comprimas más, en lugar de:
Código Delphi [-]
JpgQuality.Quality := 100;
Puedes poner, ejemplo:
Código Delphi [-]
JpgQuality.Quality := 70;
En una imagen de 2560x1400 en jpg que ocupa 1,1 MB, si se guarda con compresión 70 entonces ocupa 171 KB




Responder Con Cita
  #7  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Poder: 2
giantonti1801 Va por buen camino
Me parece excelente pero donde coloco esta función en mi código?

Última edición por Casimiro Notevi fecha: 10-01-2023 a las 19:02:38.
Responder Con Cita
  #8  
Antiguo 10-01-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.093
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por giantonti1801 Ver Mensaje
Me parece excelente pero donde coloco esta función en mi código?
Código Delphi [-]
var
  NewBitmap: TBitmap;
  MS1 : TMemoryStream;
  Surf: TBitmapSurface;
  JpgQuality : TBitmapCodecSaveParams;
begin
  NewBitmap := TBitmap.CreateFromFile('input.bmp');
  MS1 := TMemoryStream.Create;
  Surf := TBitmapSurface.create;

  try
    MS1.Position := 0;
    Surf.Assign(NewBitmap);
    JpgQuality.Quality := 100;   //   <<<-------------  ¡¡¡ AQUÍ !!!   

    if not TBitmapCodecManager.SaveToStream(MS1, Surf, '.jpg', @JpgQuality) then
      raise EBitmapSavingFailed.Create('Error saving Bitmap to jpg');

    MS1.SaveToFile('ouput.jpg');
  finally
    NewBitmap.Free;
    MS1.Free;
    Surf.Free;
  end;
end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reducir tamaño de imagen en TImage capo979 Gráficos 1 12-01-2009 17:29:59
Reducir el tamaño de una imagen pablopessoa Varios 6 11-10-2008 13:18:40
Resolución de una imagen icsoft Gráficos 4 23-07-2008 11:08:17
Resolucion de una imagen en reportBuilder trashky Impresión 2 08-05-2006 10:00:03
Reducir tamaño de imagen de un dbimage Walterdf Gráficos 4 11-11-2004 14:20:33


La franja horaria es GMT +2. Ahora son las 22:09:32.


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