124 lines
3.6 KiB
C#
124 lines
3.6 KiB
C#
using System;
|
|
|
|
namespace Hjg.Pngcs.Chunks
|
|
{
|
|
// Token: 0x02000017 RID: 23
|
|
public class PngChunkSBIT : PngChunkSingle
|
|
{
|
|
// Token: 0x17000009 RID: 9
|
|
// (get) Token: 0x060000A8 RID: 168 RVA: 0x00003EA9 File Offset: 0x000020A9
|
|
// (set) Token: 0x060000A9 RID: 169 RVA: 0x00003EB1 File Offset: 0x000020B1
|
|
public int Graysb { get; set; }
|
|
|
|
// Token: 0x1700000A RID: 10
|
|
// (get) Token: 0x060000AA RID: 170 RVA: 0x00003EBA File Offset: 0x000020BA
|
|
// (set) Token: 0x060000AB RID: 171 RVA: 0x00003EC2 File Offset: 0x000020C2
|
|
public int Alphasb { get; set; }
|
|
|
|
// Token: 0x1700000B RID: 11
|
|
// (get) Token: 0x060000AC RID: 172 RVA: 0x00003ECB File Offset: 0x000020CB
|
|
// (set) Token: 0x060000AD RID: 173 RVA: 0x00003ED3 File Offset: 0x000020D3
|
|
public int Redsb { get; set; }
|
|
|
|
// Token: 0x1700000C RID: 12
|
|
// (get) Token: 0x060000AE RID: 174 RVA: 0x00003EDC File Offset: 0x000020DC
|
|
// (set) Token: 0x060000AF RID: 175 RVA: 0x00003EE4 File Offset: 0x000020E4
|
|
public int Greensb { get; set; }
|
|
|
|
// Token: 0x1700000D RID: 13
|
|
// (get) Token: 0x060000B0 RID: 176 RVA: 0x00003EED File Offset: 0x000020ED
|
|
// (set) Token: 0x060000B1 RID: 177 RVA: 0x00003EF5 File Offset: 0x000020F5
|
|
public int Bluesb { get; set; }
|
|
|
|
// Token: 0x060000B2 RID: 178 RVA: 0x00003EFE File Offset: 0x000020FE
|
|
public PngChunkSBIT(ImageInfo info)
|
|
: base("sBIT", info)
|
|
{
|
|
}
|
|
|
|
// Token: 0x060000B3 RID: 179 RVA: 0x00003F0C File Offset: 0x0000210C
|
|
public override PngChunk.ChunkOrderingConstraint GetOrderingConstraint()
|
|
{
|
|
return PngChunk.ChunkOrderingConstraint.BEFORE_PLTE_AND_IDAT;
|
|
}
|
|
|
|
// Token: 0x060000B4 RID: 180 RVA: 0x00003F10 File Offset: 0x00002110
|
|
public override void ParseFromRaw(ChunkRaw c)
|
|
{
|
|
if (c.Length != this.GetLen())
|
|
{
|
|
throw new PngjException("bad chunk length " + c);
|
|
}
|
|
if (this.ImgInfo.Greyscale)
|
|
{
|
|
this.Graysb = PngHelperInternal.ReadInt1fromByte(c.Data, 0);
|
|
if (this.ImgInfo.Alpha)
|
|
{
|
|
this.Alphasb = PngHelperInternal.ReadInt1fromByte(c.Data, 1);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.Redsb = PngHelperInternal.ReadInt1fromByte(c.Data, 0);
|
|
this.Greensb = PngHelperInternal.ReadInt1fromByte(c.Data, 1);
|
|
this.Bluesb = PngHelperInternal.ReadInt1fromByte(c.Data, 2);
|
|
if (this.ImgInfo.Alpha)
|
|
{
|
|
this.Alphasb = PngHelperInternal.ReadInt1fromByte(c.Data, 3);
|
|
}
|
|
}
|
|
}
|
|
|
|
// Token: 0x060000B5 RID: 181 RVA: 0x00003FD0 File Offset: 0x000021D0
|
|
public override ChunkRaw CreateRawChunk()
|
|
{
|
|
ChunkRaw chunkRaw = base.createEmptyChunk(this.GetLen(), true);
|
|
if (this.ImgInfo.Greyscale)
|
|
{
|
|
chunkRaw.Data[0] = (byte)this.Graysb;
|
|
if (this.ImgInfo.Alpha)
|
|
{
|
|
chunkRaw.Data[1] = (byte)this.Alphasb;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
chunkRaw.Data[0] = (byte)this.Redsb;
|
|
chunkRaw.Data[1] = (byte)this.Greensb;
|
|
chunkRaw.Data[2] = (byte)this.Bluesb;
|
|
if (this.ImgInfo.Alpha)
|
|
{
|
|
chunkRaw.Data[3] = (byte)this.Alphasb;
|
|
}
|
|
}
|
|
return chunkRaw;
|
|
}
|
|
|
|
// Token: 0x060000B6 RID: 182 RVA: 0x00004074 File Offset: 0x00002274
|
|
public override void CloneDataFromRead(PngChunk other)
|
|
{
|
|
PngChunkSBIT pngChunkSBIT = (PngChunkSBIT)other;
|
|
this.Graysb = pngChunkSBIT.Graysb;
|
|
this.Redsb = pngChunkSBIT.Redsb;
|
|
this.Greensb = pngChunkSBIT.Greensb;
|
|
this.Bluesb = pngChunkSBIT.Bluesb;
|
|
this.Alphasb = pngChunkSBIT.Alphasb;
|
|
}
|
|
|
|
// Token: 0x060000B7 RID: 183 RVA: 0x000040C4 File Offset: 0x000022C4
|
|
private int GetLen()
|
|
{
|
|
int num = (this.ImgInfo.Greyscale ? 1 : 3);
|
|
if (this.ImgInfo.Alpha)
|
|
{
|
|
num++;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
// Token: 0x0400005F RID: 95
|
|
public const string ID = "sBIT";
|
|
}
|
|
}
|