Saludos alguien me puede ayudar por favor....la situación es que estoy usando la libreria de vampyre imaging y trato de usarlo mediante la llamada del DLL del mismo imaging el problema es que tengo que convertir un tipo TImageData a un ya sea bitmap o Timage.picture.graphic la única manera que encontré de hacerlo es como el código que muestro a continuación. En resumen cómo le puedo hacer para transformar de un pointer a un stream de la función :
Código Delphi
[-]
function ImSaveImageToMemory(Ext: PChar; Data: Pointer; var Size: LongInt; const Image: TImageData): Boolean; cdecl; external LibraryName;
Si alguien lo ha usado me puede decir como le hizo por fis lo intenté pero no me salió
saludos y gracias de antemano
Código Delphi
[-]
var
ImgData: TImageData;
jpg:TJPEGImage;
stream,streamrecive : Tstream;
HelpModule: HModule;
L: Integer;
Data: Pointer;
Buffer,recive: Pointer;
Length: Integer;
tamanio:LongInt;
exte:PChar;
bmp:Tbitmap;
valor:LongInt;
begin
jpg:=TJPEGImage.create;
if not ImLoadLibrary then showmessage('lol no encontrado');
ImInitImage(ImgData);
try
stream := TMemoryStream.Create;
jpg.Assign(foto.Picture.Graphic);
jpg.SaveToStream(stream);
stream.Position:=0;
try
L := Stream.Size;
GetMem(Data, L);
try
Stream.ReadBuffer(Data^, L);
Buffer := Data;
Length := L;
ImLoadImageFromMemory(Buffer,Length,ImgData);
ImRotateImage(ImgData,value) ;
if DiskInDrive('C') = false then raise Exception.Create('No se tiene disco local en C');
ImSaveImageToFile('C:\hola.bmp', ImgData);
try
bmp:=Tbitmap.Create;
bmp.LoadFromFile('C:\hola.bmp');
foto.Picture.Graphic:=bmp;
finally
bmp.Free;
end;
except
FreeMem(Data);
raise;
end;
finally
Stream.Free;
end;
except
end;