Ver Mensaje Individual
  #8  
Antiguo 10-01-2023
giantonti1801 giantonti1801 is offline
Miembro
 
Registrado: oct 2022
Posts: 143
Reputación: 2
giantonti1801 Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Hay varias soluciones a este problema, dependiendo de los requisitos necesarios. Algunas ya te las han comentado otros compañeros.
  • Reducir tamaño de la imagen
  • Compromirla utilizando otros formatos
  • Dedidar una tabla relacionada sólo para las imágenes (aligera consultas, no inserciones)
  • Guardarlas fuera de la B.D. (discusión eterna de si es bueno o no...)
  • ...
No hay una genérica que sirva para todos los casos, depende de las necesidades.
En tu caso on esta frase: "NO necesito que tenga buena resolución" creo que ya te está marcando la solución más adecuada.

En ese caso, puedes revisar el artículo del blog:
https://neftali.clubdelphi.com/redim...-antialiasing/
Está la explicación de todo el proceso y la resolución de algunos problemas que te puedes encontrar.

Si buscas en los foros también encontrarás más hilos con código similar:
https://www.clubdelphi.com/foros/showthread.php?t=60685
https://www.clubdelphi.com/foros/showthread.php?t=15969
https://www.clubdelphi.com/foros/showthread.php?t=55265
Gracias amigo por tu respuesta. Créeme esta situación ya no me deja dormir y realmente paso a pensar que si existiera una solución no es fácil, Hasta lo momento lo que hice fue probar todas la soluciones que existen en la web atreves de la investigación y los foros, muchas de ellas fáciles y otras difíciles pero no logre echar andar a ninguna.
Probe la Solución de Neftalí: al ejecutar el código me daba un error "fuera de rango" pero poniendo algunas línea en comentarios logre echarlo a andar pero nunca lo probé en producción y el proceso de reducir el imagen era lento por lo que pensé que no se podía aplicar a mi proyecto ya que lo que me acelerara las consultas me demoraba la reducción de la imágenes.
Otras soluciones en internet tampoco pude echarlas a andar ya que en su mayoría debía colocarle en USES el componente JPEG y por alguna razón y no sé porque me daba una error.
Mi aplicación se desarrolló para móvil con una base de dato SQL SERVER en un VPS Hosting. dentro de todos los cambios que realice en la aplicación era que al principio la imagen se guardaba en la misma tabla que consultaba frecuentemente y eso hacía que el sistema fuera lento por lo que decidí crear una tabla para las imágenes y hacer un Joins pero aún persiste el problema. créeme amigo hasta ahora solo tengo 4 imágenes almacenada y me está dando problema no quiero imaginar cuando se carguen más imágenes.
mi Joins en la consulta:
Código Delphi [-]
procedure TForminicio.ListView1ItemClickEx(const Sender: TObject;
  ItemIndex: Integer; const LocalClickPos: TPointF;
  const ItemObject: TListItemDrawable);
begin
     if (ItemObject <> nil) and (ItemObject.Name = 'GlyphButton4') then
     begin
     UniQueryDetalleVisita.Close;
     UniQueryDetalleVisita.SQL.Clear;
     UniQueryDetalleVisita.SQL.text := 'select V.Rut__vis, V.Num_dep_Vis, V.Nom_Vis, V.Piso__Vis, V.Acept_Vis, V.Hora_in_vis, V.act_vis, V.cometario,  I.FOTO  from visitas V'+
                                       ' Inner Join IMG I on V.N_reg = I.REGISTRO and MODULO = ''VISITAS'' where Rut__Vis = :Rut__Vis and Num_dep_Vis = :Num_dep_Vis order by Hora_in_vis ';
     UniQueryDetalleVisita.ParamByName ('Rut__Vis').Asstring := label21.Text;
     UniQueryDetalleVisita.ParamByName ('Num_dep_Vis').asstring := LabelDepUs.Text;
     UniQueryDetalleVisita.Open;
     TabControl.ActiveTab :=   Tbl_DetalleVisitas;
    end
    else if (ItemObject <> nil) and (ItemObject.Name = 'GlyphButton5') then
    begin
    TabControl.ActiveTab := Tbl_Susp_Vis;
    Label31.Text :=  'Nombre: '+UniQueryDetalleVisitaNom_Vis.AsString+'';
    label32.Text :=  UniQueryDetalleVisitaRut__Vis.AsString;
    end
    else if (ItemObject <> nil) and (ItemObject.Name = 'Image3') then
    begin
        TabControl.ActiveTab := Tbl_Amp_IMG;
    end;
end;

También estoy obligado utilizar un listview y lo tengo enlazado con livebindings ya que he intentado de cualquier forma alimentar el listview en tiempo de ejecución pero no lo he podido hacer. a este punto ya yo creo que he probado de todo y sigo apuntando que mi problema son la imágenes. Imágenes esta que son tomada de la cámara de los dispositivos móvil por lo que imagino que cada una debe pasar los 6MB.

Si alguien tiene una alternativa o una solución porque sigo pensando que la mejor opción es reducir la resolución de la imagen en tiempo de ejecución.

Última edición por giantonti1801 fecha: 10-01-2023 a las 11:15:28.
Responder Con Cita