diff --git a/NTwain/TwainSessionExtensions.cs b/NTwain/TwainSessionExtensions.cs index b81e525..00044f3 100644 --- a/NTwain/TwainSessionExtensions.cs +++ b/NTwain/TwainSessionExtensions.cs @@ -372,7 +372,8 @@ namespace NTwain /// public static IList CapGetDPIs(this TwainSession session) { - return session.GetCapabilityValues(CapabilityId.ICapXResolution).Cast().ToList(); + var list = session.GetCapabilityValues(CapabilityId.ICapXResolution); + return list.Select(o => o.ConvertToFix32()).ToList(); } /// diff --git a/NTwain/Values/ValueConverter.cs b/NTwain/Values/ValueConverter.cs index 3b08d17..a2921a9 100644 --- a/NTwain/Values/ValueConverter.cs +++ b/NTwain/Values/ValueConverter.cs @@ -1,4 +1,5 @@ -using System; +using NTwain.Data; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -67,5 +68,19 @@ namespace NTwain.Values { return (ushort)(value >> 16); } + + /// + /// Tries to convert to a value to if possible. + /// + /// The value. + /// + public static TWFix32 ConvertToFix32(this object value) + { + if (value is TWFix32) + { + return (TWFix32)value; + } + return (TWFix32)Convert.ToSingle(value); + } } }