public override void ParseFromRaw(ChunkRaw chunk) { byte[] data = chunk.Data; if (ImgInfo.Greyscale) { Gray = PngHelperInternal.ReadInt2fromBytes(data, 0); } else if (ImgInfo.Indexed) { int numEntries = data.Length; PaletteAlpha = new int[numEntries]; for (int n = 0; n < numEntries; n++) { PaletteAlpha[n] = (int)(data[n] & 0xff); } } else { Rgb = new RGB <int> { R = PngHelperInternal.ReadInt2fromBytes(data, 0), G = PngHelperInternal.ReadInt2fromBytes(data, 2), B = PngHelperInternal.ReadInt2fromBytes(data, 4) }; } }
public override void ParseFromRaw(ChunkRaw c) { if (c is null) { throw new ArgumentNullException(nameof(c)); } if (c.Len != 7) { throw new PngjException("bad chunk " + c); } var year = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); var mon = PngHelperInternal.ReadInt1fromByte(c.Data, 2); var day = PngHelperInternal.ReadInt1fromByte(c.Data, 3); var hour = PngHelperInternal.ReadInt1fromByte(c.Data, 4); var min = PngHelperInternal.ReadInt1fromByte(c.Data, 5); var sec = PngHelperInternal.ReadInt1fromByte(c.Data, 6); try { timestamp = new DateTime(year, mon, day, hour, min, sec); } catch { timestamp = DateTime.MinValue; } }
public override void ParseFromRaw(ChunkRaw c) { if (c is null) { throw new System.ArgumentNullException(nameof(c)); } if (ImgInfo.Greyscale) { gray = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); } else if (ImgInfo.Indexed) { var nentries = c.Data.Length; paletteAlpha = new int[nentries]; for (var n = 0; n < nentries; n++) { paletteAlpha[n] = c.Data[n] & 0xff; } } else { red = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); green = PngHelperInternal.ReadInt2fromBytes(c.Data, 2); blue = PngHelperInternal.ReadInt2fromBytes(c.Data, 4); } }
public override void ParseFromRaw(ChunkRaw c) { int num = -1; for (int i = 0; i < c.Data.Length; i++) { if (c.Data[i] == 0) { num = i; break; } } if (num <= 0 || num > c.Data.Length - 2) { throw new PngjException("bad sPLT chunk: no separator found"); } PalName = ChunkHelper.ToString(c.Data, 0, num); SampleDepth = PngHelperInternal.ReadInt1fromByte(c.Data, num + 1); num += 2; int num2 = (c.Data.Length - num) / ((SampleDepth == 8) ? 6 : 10); Palette = new int[num2 * 5]; int num3 = 0; for (int j = 0; j < num2; j++) { int num4; int num5; int num6; int num7; if (SampleDepth == 8) { num4 = PngHelperInternal.ReadInt1fromByte(c.Data, num++); num5 = PngHelperInternal.ReadInt1fromByte(c.Data, num++); num6 = PngHelperInternal.ReadInt1fromByte(c.Data, num++); num7 = PngHelperInternal.ReadInt1fromByte(c.Data, num++); } else { num4 = PngHelperInternal.ReadInt2fromBytes(c.Data, num); num += 2; num5 = PngHelperInternal.ReadInt2fromBytes(c.Data, num); num += 2; num6 = PngHelperInternal.ReadInt2fromBytes(c.Data, num); num += 2; num7 = PngHelperInternal.ReadInt2fromBytes(c.Data, num); num += 2; } int num8 = PngHelperInternal.ReadInt2fromBytes(c.Data, num); num += 2; Palette[num3++] = num4; Palette[num3++] = num5; Palette[num3++] = num6; Palette[num3++] = num7; Palette[num3++] = num8; } }
public override void ParseFromRaw(ChunkRaw chunk) { byte[] data = chunk.Data; int length = data.Length; int t = -1; for (int i = 0; i < length; i++) // look for first zero { if (data[i] == 0) { t = i; break; } } if (t <= 0 || t > length - 2) { throw new System.Exception("bad sPLT chunk: no separator found"); } PalName = ChunkHelper.ToString(data, 0, t); SampleDepth = PngHelperInternal.ReadInt1fromByte(data, t + 1); t += 2; int nentries = (length - t) / (SampleDepth == 8 ? 6 : 10); Palette = new int[nentries * 5]; int r, g, b, a, f, ne; ne = 0; for (int i = 0; i < nentries; i++) { if (SampleDepth == 8) { r = PngHelperInternal.ReadInt1fromByte(data, t++); g = PngHelperInternal.ReadInt1fromByte(data, t++); b = PngHelperInternal.ReadInt1fromByte(data, t++); a = PngHelperInternal.ReadInt1fromByte(data, t++); } else { r = PngHelperInternal.ReadInt2fromBytes(data, t); t += 2; g = PngHelperInternal.ReadInt2fromBytes(data, t); t += 2; b = PngHelperInternal.ReadInt2fromBytes(data, t); t += 2; a = PngHelperInternal.ReadInt2fromBytes(data, t); t += 2; } f = PngHelperInternal.ReadInt2fromBytes(data, t); t += 2; Palette[ne++] = r; Palette[ne++] = g; Palette[ne++] = b; Palette[ne++] = a; Palette[ne++] = f; } }
public override void ParseFromRaw(ChunkRaw chunk) { if (chunk.Length != 7) { throw new PngjException("bad chunk " + chunk?.ToString()); } year = PngHelperInternal.ReadInt2fromBytes(chunk.Data, 0); mon = PngHelperInternal.ReadInt1fromByte(chunk.Data, 2); day = PngHelperInternal.ReadInt1fromByte(chunk.Data, 3); hour = PngHelperInternal.ReadInt1fromByte(chunk.Data, 4); min = PngHelperInternal.ReadInt1fromByte(chunk.Data, 5); sec = PngHelperInternal.ReadInt1fromByte(chunk.Data, 6); }
public override void ParseFromRaw(ChunkRaw c) { if (!ImgInfo.Indexed) { throw new PngjException("only indexed images accept a HIST chunk"); } int nentries = c.Data.Length / 2; hist = new int[nentries]; for (int i = 0; i < hist.Length; i++) { hist[i] = PngHelperInternal.ReadInt2fromBytes(c.Data, i * 2); } }
public override void ParseFromRaw(ChunkRaw chunk) { if (chunk.Len != 7) { throw new System.Exception($"bad chunk {chunk}"); } byte[] data = chunk.Data; year = PngHelperInternal.ReadInt2fromBytes(data, 0); mon = PngHelperInternal.ReadInt1fromByte(data, 2); day = PngHelperInternal.ReadInt1fromByte(data, 3); hour = PngHelperInternal.ReadInt1fromByte(data, 4); min = PngHelperInternal.ReadInt1fromByte(data, 5); sec = PngHelperInternal.ReadInt1fromByte(data, 6); }
public override void ParseFromRaw(ChunkRaw c) { if (ImgInfo.Greyscale) { gray = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); return; } if (ImgInfo.Indexed) { paletteIndex = (c.Data[0] & 0xFF); return; } red = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); green = PngHelperInternal.ReadInt2fromBytes(c.Data, 2); blue = PngHelperInternal.ReadInt2fromBytes(c.Data, 4); }
public override void ParseFromRaw(ChunkRaw chunk) { byte[] data = chunk.Data; if (ImgInfo.Greyscale) { gray = PngHelperInternal.ReadInt2fromBytes(data, 0); } else if (ImgInfo.Indexed) { paletteIndex = (int)(data[0] & 0xff); } else { red = PngHelperInternal.ReadInt2fromBytes(data, 0); green = PngHelperInternal.ReadInt2fromBytes(data, 2); blue = PngHelperInternal.ReadInt2fromBytes(data, 4); } }
public override void ParseFromRaw(ChunkRaw c) { if (ImgInfo.Greyscale) { gray = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); } else if (ImgInfo.Indexed) { int num = c.Data.Length; paletteAlpha = new int[num]; for (int i = 0; i < num; i++) { paletteAlpha[i] = (c.Data[i] & 0xFF); } } else { red = PngHelperInternal.ReadInt2fromBytes(c.Data, 0); green = PngHelperInternal.ReadInt2fromBytes(c.Data, 2); blue = PngHelperInternal.ReadInt2fromBytes(c.Data, 4); } }
public override void ParseFromRaw(ChunkRaw c) { if (c is null) { throw new System.ArgumentNullException(nameof(c)); } var t = -1; for (var i = 0; i < c.Data.Length; i++) { // look for first zero if (c.Data[i] == 0) { t = i; break; } } if (t <= 0 || t > c.Data.Length - 2) { throw new PngjException("bad sPLT chunk: no separator found"); } PalName = ChunkHelper.ToString(c.Data, 0, t); SampleDepth = PngHelperInternal.ReadInt1fromByte(c.Data, t + 1); t += 2; var nentries = (c.Data.Length - t) / (SampleDepth == 8 ? 6 : 10); Palette = new int[nentries * 5]; int r; int g; int b; int a; int f; int ne; ne = 0; for (var i = 0; i < nentries; i++) { if (SampleDepth == 8) { r = PngHelperInternal.ReadInt1fromByte(c.Data, t++); g = PngHelperInternal.ReadInt1fromByte(c.Data, t++); b = PngHelperInternal.ReadInt1fromByte(c.Data, t++); a = PngHelperInternal.ReadInt1fromByte(c.Data, t++); } else { r = PngHelperInternal.ReadInt2fromBytes(c.Data, t); t += 2; g = PngHelperInternal.ReadInt2fromBytes(c.Data, t); t += 2; b = PngHelperInternal.ReadInt2fromBytes(c.Data, t); t += 2; a = PngHelperInternal.ReadInt2fromBytes(c.Data, t); t += 2; } f = PngHelperInternal.ReadInt2fromBytes(c.Data, t); t += 2; Palette[ne++] = r; Palette[ne++] = g; Palette[ne++] = b; Palette[ne++] = a; Palette[ne++] = f; } }