我正在修改jpeg EXIF数据。有些数据需要定义为分数。在这里,我有两个问题:1)哪个是正确的分数“格式”?例如,当我的曝光时间("ExposureTime")为30000µs并将其存储为30000/1000000时,EXIF查看器显示错误的曝光。存储为"1/30“将返回正确的结果。所有的分数都必须是"1/x“吗?
2.)如何快速计算分数?我现在使用的方法(类似于1中的"Dec2Frac“)非常慢。
致以敬意,
发布于 2012-04-25 20:39:26
这是我在C#中用来计算EXIF数据分数的代码。该方法返回一个包含两个整数的数组-一个是分子,一个是分母。
public static int[] GetFraction(Decimal value)
{
int denominator = 1;
int numeratorMultiplier = 1;
Decimal numerator = value * numeratorMultiplier;
int failSafe = 0;
while (Decimal.Remainder(numerator, 1m) != 0m && failSafe < 20 && ((long)numerator * 10) < Int32.MaxValue)
{
denominator *= 10;
numeratorMultiplier *= 10;
numerator = value * numeratorMultiplier;
failSafe++;
}
return new int[] {Decimal.ToInt32(numerator), denominator};
}https://stackoverflow.com/questions/9903079
复制相似问题