fpexif: Continue reading jpg when unexpected EXIF segment is found. Show built-in shell icons in metadata viewer.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8003 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2021-04-27 14:48:09 +00:00
parent c50e2a4f0a
commit 2ea4de6d2b
3 changed files with 17 additions and 15 deletions

View File

@ -29,7 +29,6 @@ object MainForm: TMainForm
Align = alTop Align = alTop
FileSortType = fstFoldersFirst FileSortType = fstFoldersFirst
HideSelection = False HideSelection = False
Images = ImageList
ReadOnly = True ReadOnly = True
TabOrder = 0 TabOrder = 0
OnGetImageIndex = ShellTreeViewGetImageIndex OnGetImageIndex = ShellTreeViewGetImageIndex
@ -58,7 +57,6 @@ object MainForm: TMainForm
HideSelection = False HideSelection = False
Mask = '*.jpg;*.jpeg;*.jpe;*.tiff;*.tif' Mask = '*.jpg;*.jpeg;*.jpe;*.tiff;*.tif'
ReadOnly = True ReadOnly = True
SmallImages = ImageList
SortColumn = 0 SortColumn = 0
TabOrder = 2 TabOrder = 2
OnSelectItem = ShellListViewSelectItem OnSelectItem = ShellListViewSelectItem
@ -363,8 +361,8 @@ object MainForm: TMainForm
SimplePanel = False SimplePanel = False
end end
object ImageList: TImageList object ImageList: TImageList
left = 89 Left = 89
top = 118 Top = 118
Bitmap = { Bitmap = {
4C7A0300000010000000100000009E0200000000000078DAEDD6DD4F52611CC0 4C7A0300000010000000100000009E0200000000000078DAEDD6DD4F52611CC0
712EBAE80FE81FE81FE8A69BAE9A372D7BD1B5B979916B6B8A446B85DA666CCE 712EBAE80FE81FE81FE8A69BAE9A372D7BD1B5B979916B6B8A446B85DA666CCE

View File

@ -78,7 +78,7 @@ implementation
{$R *.lfm} {$R *.lfm}
uses uses
LCLType, IniFiles, Math, StrUtils, DateUtils, IntfGraphics, LCLType, LCLVersion, IniFiles, Math, StrUtils, DateUtils, IntfGraphics,
fpeTags, fpeExifData, fpeIptcData; fpeTags, fpeExifData, fpeIptcData;
const const
@ -178,6 +178,10 @@ end;
procedure TMainForm.FormCreate(Sender: TObject); procedure TMainForm.FormCreate(Sender: TObject);
begin begin
{$IF LCL_FullVersion < 2010000}
ShellListView.SmallImages := ImageList;
ShellTreeView.Images := ImageList;
{$ENDIF}
//ShellListView.Parent.DoubleBuffered := true; //ShellListView.Parent.DoubleBuffered := true;
end; end;

View File

@ -526,10 +526,9 @@ begin
if FMetaDataKinds * [mdkExif, mdkExifNoMakerNotes] <> [] then begin if FMetaDataKinds * [mdkExif, mdkExifNoMakerNotes] <> [] then begin
reader := TExifReader.Create(self); reader := TExifReader.Create(self);
try try
if not TExifReader(reader).ReadExifHeader(AStream) then if TExifReader(reader).ReadExifHeader(AStream) and
exit; TExifReader(reader).ReadTiffHeader(AStream, bigEndian) then
if not TExifReader(reader).ReadTiffHeader(AStream, bigEndian) then begin
exit;
FExifData := CreateExifData(bigEndian); FExifData := CreateExifData(bigEndian);
try try
reader.ReadFromStream(AStream, ifJpeg); reader.ReadFromStream(AStream, ifJpeg);
@ -537,6 +536,7 @@ begin
FreeAndNil(FExifData); FreeAndNil(FExifData);
raise; raise;
end; end;
end;
finally finally
reader.Free; reader.Free;
end; end;