Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
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 12-02-2025
Chaja Chaja is offline
Miembro
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 240
Poder: 21
Chaja Va por buen camino
Guardar Imagenes

Hola
Desde mi sistema debia guardar una foto en la tabla de stock, para luego usarla en una app que hice en el celu. Pero las imagnes las tenia referenciadas por el path, en el sistema de escritorio todo bin pero como hacia para mandarla al celu si solo tenia el path, uso los componentes de RemoteDB, en la app, lo que no tengo un servidor rest. entonces estaba con el dilema de como pasar la imagen por defecto a la tabla de stock. Hice la consulta a ChatGPT y me dio esta solucion la cual me anduvo joya y la dejo por si alguien le hace falta
Código Delphi [-]
procedure GuardarImagenPorDefecto;
var
  QueryFoto, QueryStock: TFDQuery;
  ImagenOriginal: TGraphic;
  ImagenReducida: TJPEGImage;
  Bitmap: TBitmap;
  Stream: TMemoryStream;
  RutaImagen: string;
begin
  QueryFoto := TFDQuery.Create(nil);
  QueryStock := TFDQuery.Create(nil);
  ImagenReducida := TJPEGImage.Create;
  Bitmap := TBitmap.Create;
  Stream := TMemoryStream.Create;
  try
    QueryFoto.Connection := FDConnection1;
    QueryStock.Connection := FDConnection1;
    
    // Buscar la imagen por defecto en STOCK_FOTOS
    QueryFoto.SQL.Text := 'SELECT FOTO FROM STOCK_FOTOS WHERE POR_DEFECTO = ''S''';
    QueryFoto.Open;
    
    if not QueryFoto.IsEmpty then
    begin
      RutaImagen := QueryFoto.FieldByName('FOTO').AsString;
      
      if FileExists(RutaImagen) then
      begin
        // Determinar el formato de la imagen
        if LowerCase(ExtractFileExt(RutaImagen)) = '.png' then
          ImagenOriginal := TPngImage.Create
        else
          ImagenOriginal := TJPEGImage.Create;
        
        try
          ImagenOriginal.LoadFromFile(RutaImagen);
          
          // Redimensionar la imagen a 100x100
          Bitmap.SetSize(100, 100);
          Bitmap.Canvas.StretchDraw(Rect(0, 0, 100, 100), ImagenOriginal);
          
          // Guardar como JPEG
          ImagenReducida.Assign(Bitmap);
          ImagenReducida.CompressionQuality := 80;
          ImagenReducida.SaveToStream(Stream);
          
          // Guardar en la tabla STOCK
          QueryStock.SQL.Text := 'UPDATE STOCK SET FOTO = :FOTO';
          QueryStock.ParamByName('FOTO').LoadFromStream(Stream, ftBlob);
          QueryStock.ExecSQL;
        finally
          ImagenOriginal.Free;
        end;
      end
      else
        ShowMessage('La imagen no existe: ' + RutaImagen);
    end
    else
      ShowMessage('No se encontró imagen por defecto.');
  finally
    QueryFoto.Free;
    QueryStock.Free;
    ImagenReducida.Free;
    Bitmap.Free;
    Stream.Free;
  end;
end;
y si alguien usa RemoteDB que me avise para hacer cambio de ideas.
Gracias
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801//+54 9 223 5062169)
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
Guardar imagenes en dll Melissa_12 Varios 2 04-12-2012 16:16:41
Guardar imagenes en Oracle 8i con BDE 5.0 vmladino Oracle 1 31-10-2007 23:24:43
Guardar y Visualizar Imagenes joan_mvf Gráficos 0 15-03-2007 23:59:09
Guardar Imagenes escarlete Gráficos 1 11-10-2005 18:57:47
Guardar Imagenes en MySQL DJ VMan MySQL 5 14-08-2003 14:27:08


La franja horaria es GMT +2. Ahora son las 16:51:46.


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