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 Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
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.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si las imágenes las toman y las envían desde dispositivos móviles, deberías reducirlas en esos dispositivos antes de enviarlas.
Aparte de la resolución, también puedes reducirlas de tamaño.
No deberías tener ningún problema con ese tema de las imágenes, hoy en día es muy habitual su uso y su envío.
Tampoco es que podamos ayudar mucho si solamente nos indica que "da error", "no va", "no funciona", etc... deberías ser más explícito con cada problema para que sepamos a que atenernos.
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 Casimiro Notevi Ver Mensaje
Si las imágenes las toman y las envían desde dispositivos móviles, deberías reducirlas en esos dispositivos antes de enviarlas.
Aparte de la resolución, también puedes reducirlas de tamaño.
No deberías tener ningún problema con ese tema de las imágenes, hoy en día es muy habitual su uso y su envío.
Tampoco es que podamos ayudar mucho si solamente nos indica que "da error", "no va", "no funciona", etc... deberías ser más explícito con cada problema para que sepamos a que atenernos.
Acabo de Hacer una investigación me di cuenta que la imagen se está guardando en la base de datos como BMP y tiene una resolución de 1920*1080 pero si hay alguna opción de que se guarde en formato JPEG el peso pasa de 7 MB a 350KB pero como hacerlo?

la imagen se está guardando directamente de la cámara y yo creo que allí está el problema ya que la guarda como BITMAP
Código Delphi [-]
procedure TFormPrincipalTab.Timer_FINTimer(Sender: TObject);
var Image: TBitmap;
var bmp: TBitmap;
begin
  LabelCuentaRegresiva.Text := '0';
  Timer_N1.Enabled := false;
  LabelCuentaRegresiva.Visible := false;
  cancel := false;
  SetupSoundFoto('camara_51.mp3');
  PlaySoundFoto;
  {$IFDEF ANDROID}
  CameraComponent1.SampleBufferToBitmap(Image4.Bitmap, true);
  CameraComponent1.Active := false;
  {$ENDIF}
    begin
       if Label26.Text = 'InExistente' then
      begin
       LabelNumeroDpto.Text := labelDpto.Text;
       LabelNombreVis.Text := Edit1.Text;
        begin
        UniQueryVisitantesVal.Close;
        UniQueryVisitantesVal.SQL.Clear;
        UniQueryVisitantesVal.SQL.Add('INSERT INTO visitantes (Nom_Vis,Apell_Vis,Rut_Vis,Foto,Num_dep_Vis,Edif_vis,Estatus,Usuario_mod,)');           //
        UniQueryVisitantesVal.SQL.Add('VALUES (:Nom_Vis, :Apell_Vis, :Rut_Vis, :Foto, :Num_dep_Vis, :Edif_vis, :Estatus, :Usuario_mod, )');                      //,
        UniQueryVisitantesVal.ParamByName('Nom_vis').AsString := LabelNombreVis.text;
        UniQueryVisitantesVal.ParamByName('Rut_Vis').AsString := LabelRutVis.Text;
        UniQueryVisitantesVal.ParamByName('Num_dep_Vis').Asstring := LabelNumeroDpto.text;
        UniQueryVisitantesVal.ParamByName('Edif_vis').AsString := LabelEdificio.text;
        UniQueryVisitantesVal.ParamByName('Estatus').AsString := 'ACT';
        UniQueryVisitantesVal.ParamByName('Usuario_mod').Asstring := 'XXX';
        //UniQueryVisitantesVal.ParamByName('otro').Asstring := 'E';
        UniQueryVisitantesVal.ExecSQL;
            begin
            ////duda
            UniQueryIMG.Close;
            UniQueryIMG.SQL.Clear;
            UniQueryIMG.SQL.Add('UPDATE IMG SET FOTO = :FOTO, OTRO1 = :OTRO1, MODULO = :MODULO where OTRO1  = ''I'' and MODULO = ''VISITANTES''');
            UniQueryIMG.ParamByName('OTRO1').AsString := '';
            UniQueryIMG.ParamByName('FOTO').Assign(Image4.bitmap);
            UniQueryIMG.ExecSQL;
            end;

al agregar el jpeg en uses me da error de "f2063 could not compile used unit 'jpeg'"

Última edición por giantonti1801 fecha: 10-01-2023 a las 12:37:14.
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.293
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
  #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
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
  #5  
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.293
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
  #6  
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
  #7  
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
  #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.057
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 15:11:09.


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