PDA

Ver la Versión Completa : Cómo crear un arreglo de bytes apartir de una imagen?


fredycc
30-01-2009, 21:26:34
Hola, quisiera saber si en Delphi es posible crear un arreglo de bytes a partir de un archivo de imagen :confused:; en Visual lo he visto así:

Dim fs As FileStream = New FileStream(filePath, FileMode.Open, FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fs)
Dim bm() AsByte = br.ReadBytes(fs.Length)
br.Close()
fs.Close()
Dim photo() AsByte = bm

Les agradecería su apoyo.:)

cHackAll
30-01-2009, 21:55:41
procedure TForm1.Button1Click(Sender: TObject);
var
lpBuffer: PChar;
hFile, uBytes, Index: Integer;
begin
hFile := _lopen('C:\WINDOWS\Web\Wallpaper\Felicidad.bmp', OF_READ);
uBytes := GetFileSize(hFile, nil);
lpBuffer := Ptr(LocalAlloc(0, uBytes));
_lread(hFile, lpBuffer, uBytes);
CloseHandle(hFile);

// begin sample
for Index := Cardinal(PBitmap(lpBuffer + 2).bmBits) to uBytes - 1 do
lpBuffer[Index] := Chr(Ord(lpBuffer[Index]) xor $FF);

hFile := _lcreat('XORed.bmp', 0);
_lwrite(hFile, lpBuffer, uBytes);
CloseHandle(hFile);
// end sample

LocalFree(Cardinal(lpBuffer));
end;

fredycc
31-01-2009, 00:26:31
Tengo algunos problemitas para probar el código que amablemente escribiste; y es que olvide especificar que estoy utilizando delphi 2007 .net; y con el tipo de dato PCHar me: Unsafe pointer variables, parameters or consts only allowed in unsafe procedure :confused: y algunas funciones creo que tengo que cambiarlas como: _lopen, _lwrite, _lread y PBitmap. Gracias por el apunte.:o

Charly911
10-02-2009, 13:50:02
Hola gente del foro, queria saber si alguno me pude decir de que manera puedo crear una imagen .bmp a apartir de un arreglo de bits.
La idea es tener la imagen dentro del programa, para no tener el .exe y 12345 archivitos mas, osea un todo en uno.
Estoy usando el RAD Studio 2007...

Gracias de antemanos, Cristian.

MAXIUM
10-02-2009, 16:04:15
Osea, estas hablando de recursos. Eso es facil.

Charly911
10-02-2009, 17:33:46
Osea, estas hablando de recursos. Eso es facil.

Y entoncess..... Como seria?? o.O