お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"RE:JPEGファイルからExifのデータを取得・"

この発言は
#01347 河邦 正 さんのJPEGファイルからExifのデータを取得・表示
に対するコメントです

Doneさん、より詳細なサンプルコードをありがとうございます。  さて、私が先に出したサンプルコード( nifty:FDELPHI/MES/16/1347 ) に4箇所の修正点があります。そのうち1点は明らかなバグ修正です。 失礼しました。  GetSegFromJPEG 関数および GetExifFromJPEG 関数でそれぞれ2ヶ所 の修正個所があります(合計4箇所)。 【GetSegFromJPEG 関数の変更点その1、異常フォーマット対策の強化】 >procedure GetSegFromJPEG(Dst, Src: TStream; SegType: BYTE); >var > bCode: BYTE; > wData: WORD; >begin を下記に変更します。 function GetSegFromJPEG(Dst, Src: TStream; SegType: BYTE): Boolean; var bCode: BYTE; wData: WORD; begin Result := FALSE; 【GetSegFromJPEG 関数の変更点その2、異常フォーマット対策の強化】 > else if bCode = $da then > // SOS(Start Of Scan) セグメント > // このセグメント以降がイメージデータ > break を下記に変更します。 else if bCode = $da then begin // SOS(Start Of Scan) セグメント // このセグメント以降がイメージデータ Result := TRUE; break; end 【GetExifFromJPEG 関数の変更点その1、異常フォーマット対策の強化】 > // APP1 セグメントを取得する > GetSegFromJPEG(Data, Src, $e1); > if(Data.Size > 0)and > (StrLIComp(PChar(Data.Memory), PChar('Exif'+#0), 5) = 0) then を下記に変更します。 // APP1 セグメントを取得する if GetSegFromJPEG(Data, Src, $e1) and (Data.Size > 0)and (StrLIComp(PChar(Data.Memory), PChar('Exif'+#0), 5) = 0) then 【GetExifFromJPEG 関数の変更点その2、未設定変数を参照するバグ修正】 > if (Data.Read(Header, sizeof(Header)) = sizeof(Header)) and > ((Header.ID = $4949)or(Header.ID = $4d4d)) and > (GetWORD(Header.Code) = 42) then を下記に変更します。 if (Data.Read(Header, sizeof(Header)) = sizeof(Header)) and (((Header.ID = $4949)and(Header.Code = $2a))or ((Header.ID = $4d4d)and(Header.Code = $2a00))) then 2001/06/15、河邦 正(GCC02240@nifty.com) (http://homepage2.nifty.com/kht0000/、NIFTY外へ私作のComponentの 公開用)  Original document by 河邦 正 氏 ID:(GCC02240)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum