You've already forked lazarus-ccr
fpexif: Prepare for compilation with Delphi. Fix crash with Nikon images.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7327 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -366,103 +366,28 @@ object MainForm: TMainForm
|
||||
left = 89
|
||||
top = 118
|
||||
Bitmap = {
|
||||
4C690300000010000000100000000000000000000000D49A5B65E7BC8EB3E7BD
|
||||
90B5E7BD90B5E7BD90B5E7BD90B5E7BD90B5E7BD90B5E7BD90B5E7BD90B5E7BC
|
||||
8EB3DCA06466000000000000000000000000BF804008EFCDA7EEFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFF3D4B1F2BF8040080000000000000000CD8C4B33F9E0C4F8FEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFBE4CAFCD298563E0000000000000000D3985A6FFDEAD3FFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEECD7FFD9A269810000000000000000DDAD77A7FEF0DEFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFE3B583AF0000000000000000E6BC90C5FEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFECC49ACA0000000000000000EFCAA4DAFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFF1D0ACE00000000000000000F3D5B3ECFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFF5D9BAF1BF804004C98B4D21FAE0C4F7FEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFBE4CAFBD6965B38D5995D66FDE9D2FFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEECD7FFDAA2687BE1AE7B9BFEEFDEFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFE2B585A9DDA56B9FFDD5AAFFFDD5AAFFFDD5AAFFFDD5
|
||||
AAFFFDD5AAFFFDD5AAFFFDD5AAFFFDD5AAFFFDD5AAFFFDD5AAFFFDD5AAFFFDD5
|
||||
AAFFFDD5AAFFFDD5AAFFDEAA71A2DBA2659CFDCC98FFE4AC72FFF0BC85FFF0BC
|
||||
85FFE4AC72FFF5C18BFFE8B178FFE8B178FFF5C18BFFE4AC72FFFDCC98FFFDD3
|
||||
A6FFFEDFBFFFFDCC98FFDDA468A6DBA2659CFDCC98FFCA8C4CFFCF9353FFCF93
|
||||
53FFCA8C4CFFD19556FFCC8E4EFFCC8E4EFFD19556FFCD8F50FFFDCC98FFFEE0
|
||||
C0FFFFF6EDFFFDCC98FFDDA468A6D99F6292FDCC98FFFDCC98FFFDCC98FFFDCC
|
||||
98FFFDCC98FFFDCC98FFFDCC98FFFDCC98FFFDCC98FFFDCC98FFFDCC98FFFDCC
|
||||
98FFFDCC98FFFDCC98FFDAA06497C8894900D99F6094DBA2659CDBA2659CDBA2
|
||||
659CDBA2659CDBA2659CDBA2659CDBA2659CDBA2659CDBA2659CDBA2659CDBA2
|
||||
659CDBA2659CDAA06497C8894900000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000D59D624ED69F6788D69F6788D69F6788D69F
|
||||
647DBF8040040000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000DBA7719CFEDCB6FFFEDCB6FFFEDCB6FFFCD8
|
||||
B1F7DCA670B4C6864770C6864770C6864770C6864770C6864770C6864770C686
|
||||
4770C6864770C6864770C486454AD9A56EBAE9C093FFE9C093FFE9C093FFE9BE
|
||||
91FFE4BA8FFFF0D6B9FFF0D6B9FFF0D6B9FFF0D6B9FFF0D6B9FFF0D6B9FFF0D6
|
||||
B9FFF0D6B9FFF0D6B9FFD9A976E3DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0DCAE7DD8FEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDEB083E0D59E6684D7A56FC7D7A56FC7D7A56FC7D7A5
|
||||
6FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A5
|
||||
6FC7D7A56FC7D7A56FC7D59E6684000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000D59D624ED69F6788D69F6788D69F6788D69F
|
||||
647DBF8040040000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000DBA7719CF9D4ACFFF0C79AFFF0C79AFFEFC4
|
||||
96F9D59D63C6C6864770C6864770C6864770C6864770C6864770C6864770C686
|
||||
4770C6864770C88B482E00000000DBA7719CE9C195FFF1E1D1FFF1E1D1FFF1E1
|
||||
D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1
|
||||
D1FFF1E1D1FFD7A876C700000000DBA7719CE9C195FFFFFFFFFFFFFFFFFFFFFF
|
||||
FFFFFFFFFFFFFFFFFFFFF9F2EBFFF1E1D1FFF1E1D1FFF1E1D1FFF1E1D1FFF1E1
|
||||
D1FFF1E1D1FFD39E68D5C7874840DBA7719CE9C195FFEAD1B6FFEAD0B5FFEAD0
|
||||
B5FFEAD0B5FFE7CAACFFE9CAA9FFF0D6B9FFF0D6B9FFF0D6B9FFF0D6B9FFF0D6
|
||||
B9FFF0D6B9FFF0D6B9FFDCB182DDDBA7719CE3B888FFEED3B5FFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFE2B990B7DBA7719CE1B484FFF9E6D1FFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFDBAF82A3DBA7719CDEB180FFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFDEEDDFFD9A8738CDBA7719CE0B487FFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFF5DEC4FDD7A37253DBA7719CE5BE93FFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFE8C7A2F4CC8C4D14D9A56DA1E9C59EFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFDFB68AEA00000000D8A56FB6F3DABEFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFDCAF81E000000000D6A36FD2FCEDDAFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0DFFFFEF0
|
||||
DFFFFEF0DFFFDAAA78D500000000D59D6478D7A56FC7D7A56FC7D7A56FC7D7A5
|
||||
6FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A56FC7D7A5
|
||||
6FC7D7A56FC7D39D646300000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000000000000000000000000000000000000000
|
||||
0000000000000000000000000000
|
||||
4C7A0300000010000000100000009E0200000000000078DAEDD6DD4F52611CC0
|
||||
712EBAE80FE81FE81FE8A69BAE9A372D7BD1B5B979916B6B8A446B85DA666CCE
|
||||
CD772D9962A69989180A0A238929948C7CD9508CE1128F0738BC132442CA8B66
|
||||
4672CE13CF71C7BC28E141B76E7CB6EFF68C9D0F637BCEEF1C58ACFDB5DA5F52
|
||||
1ED2774C843E0A354796BEC635C4E6B00EAD99BABCB3B1A5D12815F7826CDA5E
|
||||
556F41C3F825C18D8B499FE167B67E2F684AADF4155F663CD6779B47463090AD
|
||||
A7366C8090DCAF67BCFBED93512AEEC9DEA70B681A558C5FD30BE7512C6CC3D0
|
||||
6F627CCC34E240F58965A58FF1DBF8C406AADF217489F4199CF9D45E70FE97CF
|
||||
B08BEAD367B067ED2DB984BFBAC321C32B00D5C3337048B835FEF19AD754CC83
|
||||
EED37DD134CBDDD207621257805CF2282A254E49F90069EE0341651588EB9BE9
|
||||
E07E67AE1DACABF974700F3F83D791980C50DE197AEF1EE1CA186F12DC049FBB
|
||||
8BE8E0DED2530CCC1D857470BFD4798B36946F16801F9B079E10973EA7BF3787
|
||||
1C43EC978B4FAFB108F1DD17F077A0C4D8E32E5C545A6815DF6BFB13BB16DE57
|
||||
D97AE768E500E5D202A6945DBDEB92554C2EB45CADC894A1E5CA7542FA48179E
|
||||
ED06074D7781A0AE13C4AD531923E4D501D778AD3D977B0FE679D7E83BF5A7FE
|
||||
381E1FE434D9A43C632E41CBFACFEB24E63FB9AA0471633F5DCCD09BC445650B
|
||||
99667FB13DFF02E3C3733D20E1B720651BAB361EF67F5BC9AD6FFFF4D8201737
|
||||
B6E6E7313E62D182C8B2E6A0904909C226F991CF1F97BAC10D7DE0431B88621A
|
||||
F4F7DF94F03DF4FEC926905CB3207BA7AA61187A8FBA0ED992513720C61E0BA0
|
||||
F74DB622FB1D8F81B40D571541FF75BA1BD9AF1B25DFCD82827384F4E19BF0FC
|
||||
20B2F76A9F45E0F9DBA53CEDB6631AD9BB54F5F4FF2FEB306F25B5E940F60E05
|
||||
1FDF9F1F363F97D9C744ECB29398DFDF7A8BC172
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -59,6 +59,7 @@ type
|
||||
FImgInfo: TImgInfo;
|
||||
FImageLoaded: Boolean;
|
||||
FImageOrientation: TExifOrientation;
|
||||
FFileName: String;
|
||||
procedure LoadFile(const AFileName: String);
|
||||
procedure LoadFromIni;
|
||||
procedure SaveToIni;
|
||||
@ -250,6 +251,7 @@ var
|
||||
crs: TCursor;
|
||||
begin
|
||||
FImageLoaded := false;
|
||||
FFileName := AFileName;
|
||||
Image.Picture.Clear;
|
||||
|
||||
TagListView.Items.BeginUpdate;
|
||||
@ -427,8 +429,8 @@ begin
|
||||
crs := Screen.Cursor;
|
||||
try
|
||||
Screen.Cursor := crHourglass;
|
||||
Image.Picture.LoadFromFile(FImgInfo.FileName);
|
||||
if FImgInfo.ExifData <> nil then
|
||||
Image.Picture.LoadFromFile(FFileName);
|
||||
if Assigned(FImgInfo) and Assigned(FImgInfo.ExifData) then
|
||||
RotateBitmap(Image.Picture.Bitmap, FImgInfo.ExifData.ImgOrientation);
|
||||
FImageLoaded := true;
|
||||
finally
|
||||
@ -561,7 +563,10 @@ begin
|
||||
'Date: %s', [
|
||||
FImgInfo.Filename, FImgInfo.FileSize div 1024, DateTimeToStr(FImgInfo.FileDate)])
|
||||
else
|
||||
FilenameInfo.caption := '< no file >';
|
||||
if FFileName <> '' then
|
||||
FilenameInfo.Caption := Format('File: %s', [FFileName])
|
||||
else
|
||||
FilenameInfo.Caption := '< no file >';
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -1,7 +1,8 @@
|
||||
unit fpeExifData;
|
||||
unit fpeExifData;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode objfpc}{$H+}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
{$I fpexif.inc}
|
||||
|
@ -1,7 +1,8 @@
|
||||
unit fpeGlobal;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode objfpc}{$H+}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
{$I fpExif.inc}
|
||||
|
@ -44,7 +44,8 @@
|
||||
unit fpeIptcReadWrite;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$MODE objfpc}{$H+}
|
||||
//{$MODE objfpc}{$H+}
|
||||
{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
@ -86,7 +87,10 @@ type
|
||||
implementation
|
||||
|
||||
uses
|
||||
lConvEncoding, fpeStrConsts;
|
||||
{$IFDEF FPC}
|
||||
lConvEncoding,
|
||||
{$ENDIF}
|
||||
fpeStrConsts;
|
||||
|
||||
type
|
||||
// http://search.cpan.org/dist/Image-MetaData-JPEG/lib/Image/MetaData/JPEG/Structures.pod#Structure_of_an_IPTC_data_block
|
||||
|
@ -2,7 +2,10 @@
|
||||
|
||||
unit fpeMakerNoteCanon;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
// {$mode objfpc}{$H+}
|
||||
{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteCasio;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteEpson;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
@ -18,7 +21,8 @@ implementation
|
||||
|
||||
procedure BuildEpsonTagDefs(AList: TTagDefList);
|
||||
const
|
||||
M = DWord(TAGPARENT_MAKERNOTE);
|
||||
// M = DWord(TAGPARENT_MAKERNOTE);
|
||||
M = LongWord(TAGPARENT_MAKERNOTE);
|
||||
begin
|
||||
Assert(AList <> nil);
|
||||
with AList do begin
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteFuji;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
@ -74,7 +77,7 @@ resourcestring
|
||||
|
||||
procedure BuildFujiTagDefs(AList: TTagDefList);
|
||||
const
|
||||
M = DWord(TAGPARENT_MAKERNOTE);
|
||||
M = LongWord(TAGPARENT_MAKERNOTE);
|
||||
begin
|
||||
Assert(AList <> nil);
|
||||
with AList do begin
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteMinolta;
|
||||
unit fpeMakerNoteMinolta;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteNikon;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
@ -336,7 +339,7 @@ end;
|
||||
|
||||
procedure TNikonMakerNoteReader.GetTagDefs(AStream: TStream);
|
||||
var
|
||||
b: array of byte;
|
||||
b: TBytes; //array of byte;
|
||||
tmp, tmp2: String;
|
||||
p: Integer;
|
||||
streamPos: Int64;
|
||||
@ -393,7 +396,8 @@ begin
|
||||
FBigEndian := false
|
||||
else
|
||||
exit;
|
||||
dw := AStream.ReadDWord;
|
||||
dw := ReadDWord(AStream);
|
||||
// dw := AStream.ReadDWord;
|
||||
if FBigEndian then dw := BEToN(dw) else dw := LEToN(dw);
|
||||
if dw = 8 then
|
||||
Result := true;
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteOlympus;
|
||||
unit fpeMakerNoteOlympus;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
@ -455,7 +458,7 @@ const
|
||||
SIGNATURE_V3I = 'OLYMPUS'#00'II'#03#00;
|
||||
SIGNATURE_V3M = 'OLYMPUS'#00'MM'#03#00;
|
||||
var
|
||||
hdr: array of byte;
|
||||
hdr: TBytes; //array of byte;
|
||||
p: Int64;
|
||||
begin
|
||||
p := AStream.Position;
|
||||
@ -560,10 +563,12 @@ var
|
||||
intVal: TExifIntegerArray;
|
||||
s: String;
|
||||
lkup: TStringArray;
|
||||
val1: Integer = -1;
|
||||
val2: Integer = -1;
|
||||
val1: Integer;
|
||||
val2: Integer;
|
||||
begin
|
||||
Result := '';
|
||||
val1 := -1;
|
||||
val2 := -1;
|
||||
if (toDecodeValue in FOptions) then begin
|
||||
intVal := GetAsIntegerArray;
|
||||
if Length(intVal) >= 3 then begin
|
||||
|
@ -1,6 +1,9 @@
|
||||
unit fpeMakerNoteSanyo;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
{$IFDEF FPC}
|
||||
{$MODE DELPHI}
|
||||
//{$mode objfpc}{$H+}
|
||||
{$ENDIF}
|
||||
|
||||
interface
|
||||
|
||||
@ -33,7 +36,7 @@ resourcestring
|
||||
// from dExif
|
||||
procedure BuildSanyoTagDefs(AList: TTagDefList);
|
||||
const
|
||||
M = DWord(TAGPARENT_MAKERNOTE);
|
||||
M = LongWord(TAGPARENT_MAKERNOTE);
|
||||
begin
|
||||
Assert(AList <> nil);
|
||||
with AList do begin
|
||||
|
@ -1104,7 +1104,7 @@ begin
|
||||
raise EFpExif.CreateFmt('Value %d out of range for tag "%s"', [AValue, FName]);
|
||||
ttSInt8:
|
||||
if not WithRangeCheck or ((AValue >= -128) and (AValue <= 127)) then
|
||||
FRawData[AIndex] := {%H-}PByte(AValue)^
|
||||
FRawData[AIndex] := PByte(@AValue)^
|
||||
else
|
||||
raise EFpExif.CreateFmt('Value %d out of range for tag "%s"', [AValue, FName]);
|
||||
ttSInt16:
|
||||
|
@ -1,7 +1,8 @@
|
||||
unit fpeUtils;
|
||||
unit fpeUtils;
|
||||
|
||||
{$IFDEF FPC}
|
||||
{$mode ObjFPC}{$H+}
|
||||
//{$MODE DELPHI}
|
||||
{$ENDIF}
|
||||
|
||||
{$I fpExif.inc}
|
||||
@ -21,9 +22,9 @@ uses
|
||||
type
|
||||
{$IFDEF FPC}
|
||||
|
||||
{$IF FPC_FULLVERSION < 3000200}
|
||||
// {$IF FPC_FULLVERSION < 30002}
|
||||
TStringArray = array of string;
|
||||
{$ENDIF}
|
||||
// {$ENDIF}
|
||||
|
||||
TInt64List = specialize TFPGList<int64>;
|
||||
{$ELSE}
|
||||
|
@ -1,3 +1,3 @@
|
||||
{$IF FPC_FullVersion < 30000}
|
||||
{$UNDEF FPC3+}
|
||||
{$ENDIF}
|
||||
{$ENDIF}
|
Reference in New Issue
Block a user