113 lines
4.1 KiB
C#
113 lines
4.1 KiB
C#
using System;
|
|
|
|
namespace Hjg.Pngcs.Chunks
|
|
{
|
|
// Token: 0x02000016 RID: 22
|
|
public class PngChunkCHRM : PngChunkSingle
|
|
{
|
|
// Token: 0x060000A1 RID: 161 RVA: 0x00003BC7 File Offset: 0x00001DC7
|
|
public PngChunkCHRM(ImageInfo info)
|
|
: base("cHRM", info)
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000A2 RID: 162 RVA: 0x00003BD5 File Offset: 0x00001DD5
|
|
public override PngChunk.ChunkOrderingConstraint GetOrderingConstraint()
|
|
{
|
|
return PngChunk.ChunkOrderingConstraint.AFTER_PLTE_BEFORE_IDAT;
|
|
}
|
|
|
|
// Token: 0x060000A3 RID: 163 RVA: 0x00003BD8 File Offset: 0x00001DD8
|
|
public override ChunkRaw CreateRawChunk()
|
|
{
|
|
ChunkRaw chunkRaw = base.createEmptyChunk(32, true);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.whitex), chunkRaw.Data, 0);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.whitey), chunkRaw.Data, 4);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.redx), chunkRaw.Data, 8);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.redy), chunkRaw.Data, 12);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.greenx), chunkRaw.Data, 16);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.greeny), chunkRaw.Data, 20);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.bluex), chunkRaw.Data, 24);
|
|
PngHelperInternal.WriteInt4tobytes(PngHelperInternal.DoubleToInt100000(this.bluey), chunkRaw.Data, 28);
|
|
return chunkRaw;
|
|
}
|
|
|
|
// Token: 0x060000A4 RID: 164 RVA: 0x00003CB0 File Offset: 0x00001EB0
|
|
public override void ParseFromRaw(ChunkRaw c)
|
|
{
|
|
if (c.Length != 32)
|
|
{
|
|
throw new PngjException("bad chunk " + c);
|
|
}
|
|
this.whitex = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 0));
|
|
this.whitey = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 4));
|
|
this.redx = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 8));
|
|
this.redy = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 12));
|
|
this.greenx = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 16));
|
|
this.greeny = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 20));
|
|
this.bluex = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 24));
|
|
this.bluey = PngHelperInternal.IntToDouble100000(PngHelperInternal.ReadInt4fromBytes(c.Data, 28));
|
|
}
|
|
|
|
// Token: 0x060000A5 RID: 165 RVA: 0x00003D98 File Offset: 0x00001F98
|
|
public override void CloneDataFromRead(PngChunk other)
|
|
{
|
|
PngChunkCHRM pngChunkCHRM = (PngChunkCHRM)other;
|
|
this.whitex = pngChunkCHRM.whitex;
|
|
this.whitey = pngChunkCHRM.whitex;
|
|
this.redx = pngChunkCHRM.redx;
|
|
this.redy = pngChunkCHRM.redy;
|
|
this.greenx = pngChunkCHRM.greenx;
|
|
this.greeny = pngChunkCHRM.greeny;
|
|
this.bluex = pngChunkCHRM.bluex;
|
|
this.bluey = pngChunkCHRM.bluey;
|
|
}
|
|
|
|
// Token: 0x060000A6 RID: 166 RVA: 0x00003E0C File Offset: 0x0000200C
|
|
public void SetChromaticities(double whitex, double whitey, double redx, double redy, double greenx, double greeny, double bluex, double bluey)
|
|
{
|
|
this.whitex = whitex;
|
|
this.redx = redx;
|
|
this.greenx = greenx;
|
|
this.bluex = bluex;
|
|
this.whitey = whitey;
|
|
this.redy = redy;
|
|
this.greeny = greeny;
|
|
this.bluey = bluey;
|
|
}
|
|
|
|
// Token: 0x060000A7 RID: 167 RVA: 0x00003E4C File Offset: 0x0000204C
|
|
public double[] GetChromaticities()
|
|
{
|
|
return new double[] { this.whitex, this.whitey, this.redx, this.redy, this.greenx, this.greeny, this.bluex, this.bluey };
|
|
}
|
|
|
|
// Token: 0x04000056 RID: 86
|
|
public const string ID = "cHRM";
|
|
|
|
// Token: 0x04000057 RID: 87
|
|
private double whitex;
|
|
|
|
// Token: 0x04000058 RID: 88
|
|
private double whitey;
|
|
|
|
// Token: 0x04000059 RID: 89
|
|
private double redx;
|
|
|
|
// Token: 0x0400005A RID: 90
|
|
private double redy;
|
|
|
|
// Token: 0x0400005B RID: 91
|
|
private double greenx;
|
|
|
|
// Token: 0x0400005C RID: 92
|
|
private double greeny;
|
|
|
|
// Token: 0x0400005D RID: 93
|
|
private double bluex;
|
|
|
|
// Token: 0x0400005E RID: 94
|
|
private double bluey;
|
|
}
|
|
}
|