Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2025
CarlosCorp CarlosCorp is offline
Miembro
 
Registrado: ago 2015
Posts: 11
Poder: 0
CarlosCorp Va por buen camino
Lightbulb Codificar una imagen como texto

Hola amigos, espero que me puedan ayudar con una duda que tengo.
He creado un programa donde tengo un stringgrid con varios registros (de 20 a 30), en cada celda hay datos tipo string, integer. Etc., Los cuales los guardo en un archivo en formato de texto para luego volver a cargarlos en el stringgrid.
La cuestión es que quiero asignarle una imagen pequeña a cada registro del stringgrid. Pero me pregunto si se podrá codificar, por así decirlo, la imagen para que quede en forma de texto y guardarlo en el mismo archivo tipo texto para luego abrirlo y convertirlo nuevamente a imagen en un tImage.
Ojalá me haya explicado bien. Espero puedan ayudarme. Gracias.
Responder Con Cita
  #2  
Antiguo 22-08-2025
siyei siyei is offline
Miembro
 
Registrado: may 2012
Posts: 31
Poder: 0
siyei Va por buen camino
Para guardar una imagen como texto tienes que utilizar algún formato como Base64:

Código Delphi [-]
uses
  Classes, SysUtils, JPEG, PNGImage, Vcl.Imaging.pngimage, Soap.EncdDecd;

procedure ImagenAGuardarComoTexto(const FileName, TextoFile: string);
var
  Img: TPicture;
  Stream: TMemoryStream;
  Texto: TStringList;
  Base64Str: string;
begin
  Img := TPicture.Create;
  Stream := TMemoryStream.Create;
  Texto := TStringList.Create;
  try
    // Cargar la imagen desde archivo
    Img.LoadFromFile(FileName);

    // Guardar la imagen en un stream
    Img.Graphic.SaveToStream(Stream);
    Stream.Position := 0;

    // Convertir a Base64
    Base64Str := EncodeBase64(Stream.Memory, Stream.Size);

    // Guardar en archivo de texto
    Texto.Text := Base64Str;
    Texto.SaveToFile(TextoFile);
  finally
    Img.Free;
    Stream.Free;
    Texto.Free;
  end;
end;

Para recuperarla:

Código Delphi [-]
procedure TextoAGuardarComoImagen(const TextoFile, FileName: string);
var
  Stream: TMemoryStream;
  Texto: TStringList;
  Img: TPicture;
  Bytes: TBytes;
begin
  Stream := TMemoryStream.Create;
  Texto := TStringList.Create;
  Img := TPicture.Create;
  try
    // Cargar el texto (Base64)
    Texto.LoadFromFile(TextoFile);
    Bytes := DecodeBase64(Texto.Text);

    // Guardar los bytes en el stream
    Stream.WriteBuffer(Bytes[0], Length(Bytes));
    Stream.Position := 0;

    // Cargar la imagen desde stream
    Img.LoadFromStream(Stream);

    // Guardar la imagen en archivo
    Img.SaveToFile(FileName);
  finally
    Stream.Free;
    Texto.Free;
    Img.Free;
  end;
end;

Última edición por Casimiro Noteví fecha: 22-08-2025 a las 11:14:38. Razón: Etiquetas para código
Responder Con Cita
  #3  
Antiguo 22-08-2025
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Por favor, no olvides usar las etiquetas para código:
Responder Con Cita
  #4  
Antiguo 22-08-2025
CarlosCorp CarlosCorp is offline
Miembro
 
Registrado: ago 2015
Posts: 11
Poder: 0
CarlosCorp Va por buen camino
Muchas gracias por la respuesta, lo implementaré para ver cómo me sale. ����

Última edición por Casimiro Noteví fecha: 23-08-2025 a las 10:38:18.
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
Decodificar y codificar una imagen djemix Gráficos 8 21-04-2012 00:45:42
Codificar texto en UTF8 xio Internet 0 29-10-2007 18:10:19
Como Codificar Texto para guardarlo en un .InI JuanErasmo API de Windows 0 13-09-2007 18:34:51
Codificar una imagen o un fichero D@byt Varios 1 27-05-2005 01:44:32
¿Como inserto una imagen en un texto? Adrix Gráficos 5 02-09-2003 00:00:21


La franja horaria es GMT +2. Ahora son las 09:25:43.


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