掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TGPBitmapでファイルにセーブしても保存されないのは何故? (ID:151934)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
テストしてみました. テストに使用したコードです. //============================================================================= // 保存 // // 動作確認は Windows 10 ビルド 19045 Pro 64 bit + Delphi XE5(UP2) Pro VCL-32 // 64 bit ( VCL 64 ) は未確認.Windows 7 での動作も未確認 // // 動作確認には,TGPBitmap が認識可能な画像ファイルを用意する必要あり //============================================================================= procedure TForm1.Button1Click(Sender: TObject); var LFileStream : TFileStream; LByteStream : TBytesStream; LpBuffer : array [0..255] of Char; LGPBitmap : TGPBitmap; LText : string; begin DeleteFile('000.dat'); DeleteFile('503_Save.bmp'); LText := 'テスト用テキスト' + sLineBreak + 'ビットマップの保存読み出し'; LFileStream := TFileStream.Create('000.dat', fmCreate); LGPBitmap := TGPBitmap.Create('503.bmp'); LByteStream := TBytesStream.Create; try FillChar(LpBuffer, SizeOf(LpBuffer), #0); StrPCopy(@LpBuffer[0], LText); LFileStream.Write(@LpBuffer[0], SizeOf(LpBuffer)); LGPBitmap.Save(TStreamAdapter.Create(LByteStream), ImageBMPClsid); LFileStream.Write(LByteStream.Bytes[0], LByteStream.Size); finally FreeAndNil(LFileStream); FreeAndNil(LByteStream); FreeAndNil(LGPBitmap); end; end; //============================================================================= /// 読み出し //============================================================================= procedure TForm1.Button2Click(Sender: TObject); var LFileStream : TFileStream; LByteStream : TBytesStream; LpBuffer : array [0..255] of Char; LGPBitmap : TGPBitmap; LText : string; LReadSize : Integer; begin DeleteFile('503_Save.bmp'); LFileStream := TFileStream.Create('000.dat', fmOpenRead); LByteStream := TBytesStream.Create; try FillChar(LpBuffer, SizeOf(LpBuffer), #0); LFileStream.Read(LpBuffer[0], SizeOf(LpBuffer)); LText := Trim(LpBuffer); LReadSize := LFileStream.Size - LFileStream.Position; LByteStream.Size := LReadSize; LFileStream.Read(LByteStream.Bytes[0], LReadSize); LGPBitmap := TGPBitmap.Create(TStreamAdapter.Create(LByteStream)); LGPBitmap.Save('503_Save.bmp', ImageBMPClsid); finally FreeAndNil(LFileStream); FreeAndNil(LByteStream); // FreeAndNil(LGPBitmap); end; ShowMessage(LText); end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.