was ist neu ¦  programmier tips ¦  indy artikel ¦  intraweb artikel ¦  informationen ¦  links ¦  interviews
 sonstiges ¦  tutorials ¦  Add&Win Gewinnspiel

Tips (1541)

Dateien (137)
Datenbanken (90)
Drucken (35)
Grafik (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Mathematik (76)
Multimedia (45)
Oberfläche (107)
Objekte/
ActiveX (51)

OpenTools API (3)
Sonstiges (126)
Strings (83)
System (266)
VCL (242)

Tips sortiert nach
Komponente


Tip suchen

Tip hinzufügen

Add&Win Gewinnspiel

Werbung

46 Visitors Online


 
... Bitmaps aus Resourcendateien per Code extrahieren?
Autor: Davy Landman
[ Tip ausdrucken ]  

Tip Bewertung (8):  
     


procedure RecoverBitmapFromResource(const sRecourceName: PAnsiChar; const sDestFileName: string);
const
  
BM = $4D42;  {Bitmap type identifier}
var
  
Bmp: TBitmap;
  BMF: TBitmapFileHeader;
  HResInfo: THandle;
  MemHandle: THandle;
  mStream: TMemoryStream;
  ResPtr: PByte;
begin
  
BMF.bfType := BM;
  { Find, Load, and Lock the Resource containing BITMAP1 }
  
HResInfo  := FindResource(HInstance, sRecourceName, RT_BITMAP);
  MemHandle := LoadResource(HInstance, HResInfo);
  ResPtr    := LockResource(MemHandle);
  { the header is lost, so will need to be recalculated,
    but lets be lazy and let TBitmap recreate the full header }
  
mStream := TMemoryStream.Create;
  try
    
mStream.SetSize(SizeofResource(HInstance, HResInfo) + SizeOf(BMF));
    mStream.Write(BMF, SizeOf(BMF));
    mStream.Write(ResPtr^, SizeofResource(HInstance, HResInfo));
    mStream.Seek(0, 0);
    {Create the TBitmap and load the image from the MemoryStream}
    
Bmp := TBitmap.Create;
    try
      
Bmp.LoadFromStream(mStream);
      Bmp.SaveToFile(sDestFileName);
    finally
      
Bmp.Free;
    end;
  finally
    
FreeResource(MemHandle);
    mStream.Free;
  end;
end;

{usage: RecoverBitmapFromResource('BITMAP_1', 'C:\recover.bmp'); }


 

Bewerten Sie diesen Tipp:

dürftig
ausgezeichnet


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners