掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TGPBitmapでファイルにセーブしても保存されないのは何故? (ID:151939)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
有難うございます。 Mr.XRAYさんの「印刷コンポーネント」は活用させて貰っています。 今一度整理します。 1.PictureSectionに 画像ファイル名・画像サイズをファイルに書込み、 画像ファイル(複数のファイル形式あり)は、以下のようにファイル末尾に保存。 [_PictureLinkSection]=2 1,'SANY01010.jpg',(856,249,1156,474),13,42383.74,0,1,1,1,5760054,(0,0),clBlack,clWhite 2,'3-4改造図主蒸気管正面図.tif',(1229,262,1529,842),13,42402.37,0,14,1,1,3639182,(2725,5270),clBlack,clWhite ここからが画像データ BM6膰6(@ー膰096/851853:73871653785:;;?D=ELCJSBLV>IW8HU9HX:KX8KX8LW7MX8NY8RY:T[8S]7R\7PZ7PZ9N]8M\:I\:I\;H^<J\?JX7CM3<E09B39@39>59>6;>7<?18;17<1<@1=C*:@)9@);B*9B.=F2BI 2.読み出し時は FileStream := TFileStream.Create(LoadFileName, fmOpenRead or fmShareDenyNone);で全体を読み込む。 画像の開始位置も調べてある。 MemStream := TMemoryStream.Create; FileStream.Position := Data[0];//画像開始位置 MemStream.CopyFrom(FileStream, Data[1]);//画像サイズ GPBitmap := TGPBitmap.Create(TStreamAdapter.Create(MemStream, soReference)); GPBitmap.Save(fName, LImgGUID);//fNameのパスは、EXEファイルのフォルダー下である。 これで、fName(一時ファイル)ができるはずが、64bitではダメ。 ちなみに、 Open時にBackUpファイルをコピーしている。 CopyFile(PChar(LoadFileName), PChar(TmpFileName), False); これはちゃんと保存されるので、一時ファイルが何故出来ないのか分からない。 直に映像ファイルを読み込めばOKなので、一時ファイルのファイルヘッダーか? GPBitmap := TGPBitmap.Create(TStreamAdapter.Create(fName, soReference)); 以上
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.