Browse Source

Fixed SA1204

pull/30/head
Dirk Lemstra 9 years ago
parent
commit
28fe29d7cb
  1. 20
      src/ImageSharp/Numerics/Rectangle.cs
  2. 70
      src/ImageSharp/Profiles/Exif/ExifReader.cs
  3. 40
      src/ImageSharp/Profiles/Exif/ExifValue.cs
  4. 14
      src/ImageSharp/Profiles/Exif/ExifWriter.cs

20
src/ImageSharp/Numerics/Rectangle.cs

@ -213,6 +213,16 @@ namespace ImageSharp
return !left.Equals(right);
}
/// <summary>
/// Returns the center point of the given <see cref="Rectangle"/>
/// </summary>
/// <param name="rectangle">The rectangle</param>
/// <returns><see cref="Point"/></returns>
public static Point Center(Rectangle rectangle)
{
return new Point(rectangle.Left + (rectangle.Width / 2), rectangle.Top + (rectangle.Height / 2));
}
/// <summary>
/// Determines if the specfied point is contained within the rectangular region defined by
/// this <see cref="Rectangle"/>.
@ -229,16 +239,6 @@ namespace ImageSharp
&& y < this.Bottom;
}
/// <summary>
/// Returns the center point of the given <see cref="Rectangle"/>
/// </summary>
/// <param name="rectangle">The rectangle</param>
/// <returns><see cref="Point"/></returns>
public static Point Center(Rectangle rectangle)
{
return new Point(rectangle.Left + (rectangle.Width / 2), rectangle.Top + (rectangle.Height / 2));
}
/// <inheritdoc/>
public override int GetHashCode()
{

70
src/ImageSharp/Profiles/Exif/ExifReader.cs

@ -117,6 +117,41 @@ namespace ImageSharp
return result;
}
private static TDataType[] ToArray<TDataType>(ExifDataType dataType, byte[] data, ConverterMethod<TDataType> converter)
{
int dataTypeSize = (int)ExifValue.GetSize(dataType);
int length = data.Length / dataTypeSize;
TDataType[] result = new TDataType[length];
byte[] buffer = new byte[dataTypeSize];
for (int i = 0; i < length; i++)
{
Array.Copy(data, i * dataTypeSize, buffer, 0, dataTypeSize);
result.SetValue(converter(buffer), i);
}
return result;
}
private static byte ToByte(byte[] data)
{
return data[0];
}
private static string ToString(byte[] data)
{
string result = Encoding.UTF8.GetString(data, 0, data.Length);
int nullCharIndex = result.IndexOf('\0');
if (nullCharIndex != -1)
{
result = result.Substring(0, nullCharIndex);
}
return result;
}
/// <summary>
/// Adds the collection of EXIF values to the reader.
/// </summary>
@ -369,29 +404,6 @@ namespace ImageSharp
}
}
private static TDataType[] ToArray<TDataType>(ExifDataType dataType, byte[] data, ConverterMethod<TDataType> converter)
{
int dataTypeSize = (int)ExifValue.GetSize(dataType);
int length = data.Length / dataTypeSize;
TDataType[] result = new TDataType[length];
byte[] buffer = new byte[dataTypeSize];
for (int i = 0; i < length; i++)
{
Array.Copy(data, i * dataTypeSize, buffer, 0, dataTypeSize);
result.SetValue(converter(buffer), i);
}
return result;
}
private static byte ToByte(byte[] data)
{
return data[0];
}
private double ToDouble(byte[] data)
{
if (!this.ValidateArray(data, 8))
@ -432,18 +444,6 @@ namespace ImageSharp
return BitConverter.ToSingle(data, 0);
}
private static string ToString(byte[] data)
{
string result = Encoding.UTF8.GetString(data, 0, data.Length);
int nullCharIndex = result.IndexOf('\0');
if (nullCharIndex != -1)
{
result = result.Substring(0, nullCharIndex);
}
return result;
}
private Rational ToRational(byte[] data)
{
if (!this.ValidateArray(data, 8, 4))

40
src/ImageSharp/Profiles/Exif/ExifValue.cs

@ -574,6 +574,26 @@ namespace ImageSharp
}
}
private static ExifValue CreateNumber(ExifTag tag, Type type, bool isArray)
{
if (type == null || type == typeof(ushort))
{
return new ExifValue(tag, ExifDataType.Short, isArray);
}
if (type == typeof(short))
{
return new ExifValue(tag, ExifDataType.SignedShort, isArray);
}
if (type == typeof(uint))
{
return new ExifValue(tag, ExifDataType.Long, isArray);
}
return new ExifValue(tag, ExifDataType.SignedLong, isArray);
}
private void CheckValue(object value)
{
if (value == null)
@ -639,26 +659,6 @@ namespace ImageSharp
}
}
private static ExifValue CreateNumber(ExifTag tag, Type type, bool isArray)
{
if (type == null || type == typeof(ushort))
{
return new ExifValue(tag, ExifDataType.Short, isArray);
}
if (type == typeof(short))
{
return new ExifValue(tag, ExifDataType.SignedShort, isArray);
}
if (type == typeof(uint))
{
return new ExifValue(tag, ExifDataType.Long, isArray);
}
return new ExifValue(tag, ExifDataType.SignedLong, isArray);
}
private string ToString(object value)
{
string description = ExifTagDescriptionAttribute.GetDescription(this.Tag, value);

14
src/ImageSharp/Profiles/Exif/ExifWriter.cs

@ -379,6 +379,13 @@ namespace ImageSharp
return result;
}
private static int Write(byte[] source, byte[] destination, int offset)
{
Buffer.BlockCopy(source, 0, destination, offset, source.Length);
return offset + source.Length;
}
private int GetIndex(Collection<int> indexes, ExifTag tag)
{
foreach (int index in indexes)
@ -443,13 +450,6 @@ namespace ImageSharp
return length;
}
private static int Write(byte[] source, byte[] destination, int offset)
{
Buffer.BlockCopy(source, 0, destination, offset, source.Length);
return offset + source.Length;
}
private int WriteArray(ExifValue value, byte[] destination, int offset)
{
if (value.DataType == ExifDataType.Ascii)

Loading…
Cancel
Save