Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Convertir imagen en Array of Byte (https://www.clubdelphi.com/foros/showthread.php?t=88203)

jlrdz 28-04-2015 19:12:47

Convertir imagen en Array of Byte
 
Saludos y buenos días primero que nada, tengo una duda y ojalá pudieran ayudarme.

Necesito pasar una imagen ya sea que la tenga almacenada en una variable (TBitMap) o componente TImage a un arreglo de bytes (array of byte) que representa el contenido de la imagen, esto para poder enviarla en un documento XML a un web service, ¿alguien ya lo ha hecho antes?

Encontré en este hilo (http://www.clubdelphi.com/foros/showthread.php?t=63985) una respuesta(#18) de Neftali pero como tengo desconocimiento del tema no sé si esto me sirva o sea lo que estoy tratando de hacer.

De antemano gracias y si necesitan más información de mi parte estaré al pendiente.

¡Saludos! :)

duilioisola 28-04-2015 19:36:07

Supongo que lo que necesitas es codificar la imagen en BASE64 para poder agregarla a tu XML.

Aquí tienes un hilo que muestra el código para hacer eso en el mensaje número 4:
http://www.clubdelphi.com/foros/show...ghlight=base64

jlrdz 28-04-2015 20:03:19

Cita:

Empezado por duilioisola (Mensaje 491775)
Supongo que lo que necesitas es codificar la imagen en BASE64 para poder agregarla a tu XML.

Aquí tienes un hilo que muestra el código para hacer eso en el mensaje número 4:
http://www.clubdelphi.com/foros/show...ghlight=base64

Muchas gracias amigo por tu respuesta, lo intentaré de esa forma y daré respuesta.

Saludos!

jhonny 29-04-2015 04:41:40

Bueno, quizá también sirva echarle ojo a este post...

http://www.clubdelphi.com/foros/show...90&postcount=4

Que viene siendo al revés pero apuesto que una pista interesante se encuentra ahí.

jlrdz 04-05-2015 17:47:56

Gracias a todos por sus respuestas y el tiempo que se tomaron en ayudarme, a fin de cuentas el archivo que me generó la importación de wsdl solicitaba que el archivo se pasara como TByteDynArray, aquí les dejaré la función que me ayudó a resolver dicho problema por si alguien más lleva a pasar por lo mismo.

Saludos.

Código Delphi [-]
function TForm1.FIleToByteArray(const FileName: string): TByteDynArray;
const BLOCK_SIZE=1024;
var BytesRead, BytesToWrite, Count : integer;
 F : FIle of Byte;
 pTemp : Pointer;
begin
 AssignFile( F, FileName );
 Reset(F);
try
 Count := FileSize( F );
 SetLength(Result, Count );
 pTemp := @Result[0];
 BytesRead := BLOCK_SIZE;
 while (BytesRead = BLOCK_SIZE ) do
 begin
  BytesToWrite := Min(Count, BLOCK_SIZE);
  BlockRead(F, pTemp^, BytesToWrite , BytesRead );
   pTemp := Pointer(LongInt(pTemp) + BLOCK_SIZE);
  Count := Count-BytesRead;
 end;
finally
  CloseFile( F );
 end;
end;

Así se manda llamar...
Código Delphi [-]
var nImagenArray :TByteDynArray;
begin
...
   nImagenArray := FileToByteArray('c:\rutaimagenejemplo.jpg');
...
end;


La franja horaria es GMT +2. Ahora son las 19:58:35.

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