Browse Source

Use Encoding.GetString(ROS<byte>) polyfill

pull/720/head
Jason Nelson 7 years ago
parent
commit
bb37823dc2
  1. 2
      src/ImageSharp/Formats/Png/PngDecoderCore.cs
  2. 13
      src/ImageSharp/MetaData/Profiles/Exif/ExifReader.cs

2
src/ImageSharp/Formats/Png/PngDecoderCore.cs

@ -1016,7 +1016,7 @@ namespace SixLabors.ImageSharp.Formats.Png
if (this.crc.Value != chunk.Crc)
{
string chunkTypeName = Encoding.UTF8.GetString(chunkType.ToArray(), 0, 4);
string chunkTypeName = Encoding.UTF8.GetString(chunkType);
throw new ImageFormatException($"CRC Error. PNG {chunkTypeName} chunk is corrupt!");
}

13
src/ImageSharp/MetaData/Profiles/Exif/ExifReader.cs

@ -127,25 +127,14 @@ namespace SixLabors.ImageSharp.MetaData.Profiles.Exif
private unsafe string ConvertToString(ReadOnlySpan<byte> buffer)
{
Span<byte> nullChar = stackalloc byte[1] { 0 };
int nullCharIndex = buffer.IndexOf(nullChar);
int nullCharIndex = buffer.IndexOf((byte)0);
if (nullCharIndex > -1)
{
buffer = buffer.Slice(0, nullCharIndex);
}
#if NETSTANDARD1_1
return Encoding.UTF8.GetString(buffer.ToArray(), 0, buffer.Length);
#elif NETCOREAPP2_1
return Encoding.UTF8.GetString(buffer);
#else
fixed (byte* pointer = &MemoryMarshal.GetReference(buffer))
{
return Encoding.UTF8.GetString(pointer, buffer.Length);
}
#endif
}
/// <summary>

Loading…
Cancel
Save