Вверх ↑
Этот топик читают: Гость
Ответов: 1685
Рейтинг: 149
#1: 2018-08-18 22:46:15 ЛС | профиль | цитата
В компоненте Jpeg замечена небольшая ошибка по тегам FocalLength и ExposureTime.
Такой код:
Add(DropFile,14409130,245,161)
{
link(onDropFile,4202561:doEvent1,[])
}
Add(Jpeg,3200015,378,147)
{
Point(idModel)
Point(doReadTags)
Point(FileName)
Point(idDateTime)
Point(idExposureTime)
Point(idFocalLength)
Point(idOrientation)
Point(idMake)
}
Add(FormatStr,11283402,378,259)
{
DataCount=6
Mask="\r\n-------------------EXIF:\r\nУстройство: %6 %1\r\nДата-время съёмки: %2\r\nФокусное расстояние: %4 мм\r\nОриентация: %5"
link(onFString,10904933:doMessage,[])
link(Str1,3200015:idModel,[])
link(Str2,3200015:idDateTime,[])
link(Str4,2995403:reCalc,[(405,247)(475,247)])
link(Str5,3200015:idOrientation,[])
link(Str6,3200015:idMake,[])
}
Add(MathParse,2995403,462,203)
{
DataCount=1
MathStr="round(%1/10 * 100)/100"
Point(reCalc)
link(X1,3200015:idFocalLength,[(468,191)(405,191)])
}
Add(Hub,4202561,301,161)
{
link(onEvent1,3200015:doReadTags,[])
link(onEvent2,11283402:doString,[(347,174)(347,265)])
}
Add(Message,10904933,441,259)
{
}

1. Кинуть на форму картинку без EXIF-данных. Не должен показать их в сообщении.
2. Кинуть фотку с EXIF. Должен показать.
3. Снова кинуть картинку без EXIF-а. Никаких данных не покажет, кроме FocalLength и ExposureTime - они останутся такими же, как у последней кинутой картинки с Exif.

Проблема в файле exif.pas.
TExif.ReadFromFile вызывает ф-цию Init, к-ая обнуляет поля объекта. Но FocalLength и ExposureTime не обнуляются. Поэтому и появляется такая чушь.

Решение: заменить в exif.pas процедуру Init на:
procedure TExif.Init;
begin
idfp:=0;

FImageDesc:='';
FMake:='';
FModel:='';
FOrientation:=1;
FOrientationDesk:='Normal';
FDateTime:='';
FCopyright:='';
FValid:=False;
FDateTimeOriginal:='';
FDateTimeDigitized:='';
FUserComments:='';
FocalLength:=0;
ExposureTime:=0;
end;


Редактировалось 1 раз(а), последний 2018-08-18 22:46:41
карма: 5
0
vip
#1.1контекстная реклама от партнеров
1
Сообщение
...
Прикрепленные файлы
(файлы не залиты)