From a985658b00b5cbdc0a3c07ef0fdce9491097d710 Mon Sep 17 00:00:00 2001 From: Jason Nelson Date: Tue, 5 Jun 2018 14:12:27 -0700 Subject: [PATCH] Make Exif header a constant --- .../MetaData/Profiles/Exif/ExifConstants.cs | 21 +++++++++++++++++++ .../MetaData/Profiles/Exif/ExifWriter.cs | 19 +++++------------ 2 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 src/ImageSharp/MetaData/Profiles/Exif/ExifConstants.cs diff --git a/src/ImageSharp/MetaData/Profiles/Exif/ExifConstants.cs b/src/ImageSharp/MetaData/Profiles/Exif/ExifConstants.cs new file mode 100644 index 000000000..cca53ba43 --- /dev/null +++ b/src/ImageSharp/MetaData/Profiles/Exif/ExifConstants.cs @@ -0,0 +1,21 @@ +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. + +namespace SixLabors.ImageSharp.MetaData.Profiles.Exif +{ + internal static class ExifConstants + { + public static readonly byte[] Header = { + (byte)'E', + (byte)'x', + (byte)'i', + (byte)'f', + 0x00, + 0x00, + (byte)'I', + (byte)'I', + 0x2A, + 0x00, + }; + } +} \ No newline at end of file diff --git a/src/ImageSharp/MetaData/Profiles/Exif/ExifWriter.cs b/src/ImageSharp/MetaData/Profiles/Exif/ExifWriter.cs index f7363ef31..8749c0755 100644 --- a/src/ImageSharp/MetaData/Profiles/Exif/ExifWriter.cs +++ b/src/ImageSharp/MetaData/Profiles/Exif/ExifWriter.cs @@ -90,16 +90,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif byte[] result = new byte[length]; - result[0] = (byte)'E'; - result[1] = (byte)'x'; - result[2] = (byte)'i'; - result[3] = (byte)'f'; - result[4] = 0x00; - result[5] = 0x00; - result[6] = (byte)'I'; - result[7] = (byte)'I'; - result[8] = 0x2A; - result[9] = 0x00; + ExifConstants.Header.AsSpan().CopyTo(result); // 0-9 int i = 10; uint ifdOffset = ((uint)i - StartIndex) + 4; @@ -250,7 +241,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif return length; } - private int WriteArray(ExifValue value, byte[] destination, int offset) + private int WriteArray(ExifValue value, Span destination, int offset) { if (value.DataType == ExifDataType.Ascii) { @@ -266,7 +257,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif return newOffset; } - private int WriteData(List indexes, byte[] destination, int offset) + private int WriteData(List indexes, Span destination, int offset) { if (this.dataOffsets.Count == 0) { @@ -289,7 +280,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif return newOffset; } - private int WriteHeaders(List indexes, byte[] destination, int offset) + private int WriteHeaders(List indexes, Span destination, int offset) { this.dataOffsets = new List(); @@ -370,7 +361,7 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif } } - private int WriteValue(ExifValue value, byte[] destination, int offset) + private int WriteValue(ExifValue value, Span destination, int offset) { if (value.IsArray && value.DataType != ExifDataType.Ascii) {