Browse Source

Merge branch 'bigtiff' of github.com:IldarKhayrutdinov/ImageSharp into bigtiff

pull/1760/head
Ildar Khayrutdinov 5 years ago
parent
commit
fc70345e42
  1. 4
      src/ImageSharp/Metadata/Profiles/Exif/ExifReader.cs
  2. 5
      src/ImageSharp/Metadata/Profiles/Exif/Values/ExifLong8Array.cs
  3. 4
      src/ImageSharp/Metadata/Profiles/Exif/Values/ExifNumberArray.cs

4
src/ImageSharp/Metadata/Profiles/Exif/ExifReader.cs

@ -150,7 +150,7 @@ namespace SixLabors.ImageSharp.Metadata.Profiles.Exif
this.Seek(offset); this.Seek(offset);
int count = this.ReadUInt16(); int count = this.ReadUInt16();
Span<byte> offsetBuffer = new byte[4]; Span<byte> offsetBuffer = stackalloc byte[4];
for (int i = 0; i < count; i++) for (int i = 0; i < count; i++)
{ {
this.ReadValue(values, offsetBuffer); this.ReadValue(values, offsetBuffer);
@ -177,7 +177,7 @@ namespace SixLabors.ImageSharp.Metadata.Profiles.Exif
this.Seek(offset); this.Seek(offset);
ulong count = this.ReadUInt64(); ulong count = this.ReadUInt64();
Span<byte> offsetBuffer = new byte[8]; Span<byte> offsetBuffer = stackalloc byte[8];
for (ulong i = 0; i < count; i++) for (ulong i = 0; i < count; i++)
{ {
this.ReadValue64(values, offsetBuffer); this.ReadValue64(values, offsetBuffer);

5
src/ImageSharp/Metadata/Profiles/Exif/Values/ExifLong8Array.cs

@ -107,10 +107,7 @@ namespace SixLabors.ImageSharp.Metadata.Profiles.Exif
private bool SetArray(long[] values) private bool SetArray(long[] values)
{ {
var numbers = new ulong[values.Length]; var numbers = new ulong[values.Length];
for (int i = 0; i < values.Length; i++) this.Value = Unsafe.As<long[], ulong[]>(ref values);
{
numbers[i] = (ulong)values[i];
}
this.Value = numbers; this.Value = numbers;
return true; return true;

4
src/ImageSharp/Metadata/Profiles/Exif/Values/ExifNumberArray.cs

@ -56,7 +56,7 @@ namespace SixLabors.ImageSharp.Metadata.Profiles.Exif
case int[] array: case int[] array:
{ {
// workaround for inconsistent covariance of value-typed arrays // workaround for inconsistent covariance of value-typed arrays
if (value.GetType().Equals(typeof(uint[]))) if (value.GetType() == typeof(uint[]))
{ {
return this.SetArray((uint[])value); return this.SetArray((uint[])value);
} }
@ -66,7 +66,7 @@ namespace SixLabors.ImageSharp.Metadata.Profiles.Exif
case short[] array: case short[] array:
{ {
if (value.GetType().Equals(typeof(ushort[]))) if (value.GetType() == typeof(ushort[]))
{ {
return this.SetArray((ushort[])value); return this.SetArray((ushort[])value);
} }

Loading…
Cancel
Save