Browse Source

Tiff colors improvements

pull/1570/head
Ildar Khayrutdinov 6 years ago
parent
commit
75b8569791
  1. 4
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero1TiffColor.cs
  2. 14
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero4TiffColor.cs
  3. 6
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero8TiffColor.cs
  4. 4
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero1TiffColor.cs
  5. 14
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero4TiffColor.cs
  6. 6
      src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero8TiffColor.cs

4
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero1TiffColor.cs

@ -26,8 +26,8 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
var black = new Rgba32(0, 0, 0, 0xff);
var white = new Rgba32(0xff, 0xff, 0xff, 0xff);
var black = Color.Black.ToRgba32();
var white = Color.White.ToRgba32();
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width; x += 8)

14
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero4TiffColor.cs

@ -26,7 +26,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
bool isOddWidth = (width & 1) == 1;
var rgba = default(Rgba32);
var l8 = default(L8);
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width - 1;)
@ -34,14 +34,14 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
byte byteData = data[offset++];
byte intensity1 = (byte)(((byteData & 0xF0) >> 4) * 17);
rgba.PackedValue = (uint)(intensity1 | (intensity1 << 8) | (intensity1 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity1;
color.FromL8(l8);
pixels[x++, y] = color;
byte intensity2 = (byte)((byteData & 0x0F) * 17);
rgba.PackedValue = (uint)(intensity2 | (intensity2 << 8) | (intensity2 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity2;
color.FromL8(l8);
pixels[x++, y] = color;
}
@ -51,8 +51,8 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
byte byteData = data[offset++];
byte intensity1 = (byte)(((byteData & 0xF0) >> 4) * 17);
rgba.PackedValue = (uint)(intensity1 | (intensity1 << 8) | (intensity1 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity1;
color.FromL8(l8);
pixels[left + width - 1, y] = color;
}

6
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/BlackIsZero8TiffColor.cs

@ -25,15 +25,15 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
var rgba = default(Rgba32);
var l8 = default(L8);
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width; x++)
{
byte intensity = data[offset++];
rgba.PackedValue = (uint)(intensity | (intensity << 8) | (intensity << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity;
color.FromL8(l8);
pixels[x, y] = color;
}

4
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero1TiffColor.cs

@ -25,8 +25,8 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
var black = new Rgba32(0, 0, 0, 0xff);
var white = new Rgba32(0xff, 0xff, 0xff, 0xff);
var black = Color.Black.ToRgba32();
var white = Color.White.ToRgba32();
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width; x += 8)

14
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero4TiffColor.cs

@ -26,7 +26,7 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
bool isOddWidth = (width & 1) == 1;
var rgba = default(Rgba32);
var l8 = default(L8);
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width - 1;)
@ -34,14 +34,14 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
byte byteData = data[offset++];
byte intensity1 = (byte)((15 - ((byteData & 0xF0) >> 4)) * 17);
rgba.PackedValue = (uint)(intensity1 | (intensity1 << 8) | (intensity1 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity1;
color.FromL8(l8);
pixels[x++, y] = color;
byte intensity2 = (byte)((15 - (byteData & 0x0F)) * 17);
rgba.PackedValue = (uint)(intensity2 | (intensity2 << 8) | (intensity2 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity2;
color.FromL8(l8);
pixels[x++, y] = color;
}
@ -51,8 +51,8 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
byte byteData = data[offset++];
byte intensity1 = (byte)((15 - ((byteData & 0xF0) >> 4)) * 17);
rgba.PackedValue = (uint)(intensity1 | (intensity1 << 8) | (intensity1 << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity1;
color.FromL8(l8);
pixels[left + width - 1, y] = color;
}

6
src/ImageSharp/Formats/Tiff/PhotometricInterpretation/WhiteIsZero8TiffColor.cs

@ -25,15 +25,15 @@ namespace SixLabors.ImageSharp.Formats.Experimental.Tiff
int offset = 0;
var rgba = default(Rgba32);
var l8 = default(L8);
for (int y = top; y < top + height; y++)
{
for (int x = left; x < left + width; x++)
{
byte intensity = (byte)(255 - data[offset++]);
rgba.PackedValue = (uint)(intensity | (intensity << 8) | (intensity << 16) | (0xff << 24));
color.FromRgba32(rgba);
l8.PackedValue = intensity;
color.FromL8(l8);
pixels[x, y] = color;
}

Loading…
Cancel
Save