В буфере хранится изображение, необходимо сохранить его в Stream и из Stream в файл. Что-то делаю не так и сохраняется пустое изображения. Где я ошибаюсь?
| Код | procedure TForm1.Button1Click(Sender: TObject);
procedure SaveClipboardToStream(Format: Word; Stream: TStream); var Buffer: Pointer; Data: THandle; Size: Longint; begin Clipboard.Open; try Data := GetClipboardData(Format); if Data = 0 then Exit; Buffer := GlobalLock(Data); try // (rom) added handling of Format and Size! Size := GlobalSize(Data); Stream.Write(Format, SizeOf(Word)); Stream.Write(Size, SizeOf(Longint)); Stream.Write(Buffer^, Size); finally GlobalUnlock(Data); end; finally Clipboard.Close; end; end;
var s: TStream; B: TBitmap; begin s := TMemoryStream.Create; SaveClipboardToStream(CF_BITMAP, s);
b := TBitmap.Create; B.LoadFromStream(s); b.SaveToFile('d:\2.jpg'); b.Free; s.Free; end;
|
|