|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"DIBからBitmapに変換"
ハンドルの形で取得されたDIBをBitmapに読み込ませます。
Delphi3.1で確認。
procedure BitmapLoadFromDIB(Bitmap: TBitmap; hDib:THandle);
var
Stream: TMemoryStream;
DIBSize: Longint;
pDIB: Pointer;
begin
Stream := nil;
PDIB := nil;
try
Stream := TMemoryStream.Create;
DIBSize := GlobalSize(hDIB);
Stream.Size := Sizeof(TBitmapFileHeader) + DIBSize;
PBitmapFileHeader(Stream.Memory).bfType := $4D42;
pDIB := GlobalLock(hDIB);
if pDIB = nil then
raise Exception.Create('Could not Get DIB Memory');
Move(pDIB^, (PChar(STream.Memory) + sizeof(TBitmapFileHeader))^,
DIBSize);
Stream.Position := 0;
Bitmap.LoadFromStream(Stream);
finally
if pDIB <> nil then GlobalUnlock(hDIB);
GlobalFree(hDIB);
Stream.Free;
end;
end;
98/01/30(金) ytm PAF03212@niftyserve.or.jp
http://www.geocities.com/SiliconValley/Peaks/8273/
Original document by ytm 氏 ID:(PAF03212)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|