Files
2026-06-04 11:42:34 +02:00

138 lines
4.7 KiB
C#

using System;
namespace Hjg.Pngcs
{
// Token: 0x02000019 RID: 25
public class ImageLines
{
// Token: 0x1700000F RID: 15
// (get) Token: 0x060000BF RID: 191 RVA: 0x00004190 File Offset: 0x00002390
// (set) Token: 0x060000C0 RID: 192 RVA: 0x00004198 File Offset: 0x00002398
public ImageInfo ImgInfo { get; private set; }
// Token: 0x17000010 RID: 16
// (get) Token: 0x060000C1 RID: 193 RVA: 0x000041A1 File Offset: 0x000023A1
// (set) Token: 0x060000C2 RID: 194 RVA: 0x000041A9 File Offset: 0x000023A9
public ImageLine.ESampleType sampleType { get; private set; }
// Token: 0x17000011 RID: 17
// (get) Token: 0x060000C3 RID: 195 RVA: 0x000041B2 File Offset: 0x000023B2
// (set) Token: 0x060000C4 RID: 196 RVA: 0x000041BA File Offset: 0x000023BA
public bool SamplesUnpacked { get; private set; }
// Token: 0x17000012 RID: 18
// (get) Token: 0x060000C5 RID: 197 RVA: 0x000041C3 File Offset: 0x000023C3
// (set) Token: 0x060000C6 RID: 198 RVA: 0x000041CB File Offset: 0x000023CB
public int RowOffset { get; private set; }
// Token: 0x17000013 RID: 19
// (get) Token: 0x060000C7 RID: 199 RVA: 0x000041D4 File Offset: 0x000023D4
// (set) Token: 0x060000C8 RID: 200 RVA: 0x000041DC File Offset: 0x000023DC
public int Nrows { get; private set; }
// Token: 0x17000014 RID: 20
// (get) Token: 0x060000C9 RID: 201 RVA: 0x000041E5 File Offset: 0x000023E5
// (set) Token: 0x060000CA RID: 202 RVA: 0x000041ED File Offset: 0x000023ED
public int RowStep { get; private set; }
// Token: 0x17000015 RID: 21
// (get) Token: 0x060000CB RID: 203 RVA: 0x000041F6 File Offset: 0x000023F6
// (set) Token: 0x060000CC RID: 204 RVA: 0x000041FE File Offset: 0x000023FE
public int[][] Scanlines { get; private set; }
// Token: 0x17000016 RID: 22
// (get) Token: 0x060000CD RID: 205 RVA: 0x00004207 File Offset: 0x00002407
// (set) Token: 0x060000CE RID: 206 RVA: 0x0000420F File Offset: 0x0000240F
public byte[][] ScanlinesB { get; private set; }
// Token: 0x060000CF RID: 207 RVA: 0x00004218 File Offset: 0x00002418
public ImageLines(ImageInfo ImgInfo, ImageLine.ESampleType sampleType, bool unpackedMode, int rowOffset, int nRows, int rowStep)
{
this.ImgInfo = ImgInfo;
this.channels = ImgInfo.Channels;
this.bitDepth = ImgInfo.BitDepth;
this.sampleType = sampleType;
this.SamplesUnpacked = unpackedMode || !ImgInfo.Packed;
this.RowOffset = rowOffset;
this.Nrows = nRows;
this.RowStep = rowStep;
this.elementsPerRow = (unpackedMode ? ImgInfo.SamplesPerRow : ImgInfo.SamplesPerRowPacked);
if (sampleType == ImageLine.ESampleType.INT)
{
this.Scanlines = new int[nRows][];
for (int i = 0; i < nRows; i++)
{
this.Scanlines[i] = new int[this.elementsPerRow];
}
this.ScanlinesB = null;
return;
}
if (sampleType == ImageLine.ESampleType.BYTE)
{
this.ScanlinesB = new byte[nRows][];
for (int j = 0; j < nRows; j++)
{
this.ScanlinesB[j] = new byte[this.elementsPerRow];
}
this.Scanlines = null;
return;
}
throw new PngjExceptionInternal("bad ImageLine initialization");
}
// Token: 0x060000D0 RID: 208 RVA: 0x00004310 File Offset: 0x00002510
public int ImageRowToMatrixRow(int imrow)
{
int num = (imrow - this.RowOffset) / this.RowStep;
if (num < 0)
{
return 0;
}
if (num >= this.Nrows)
{
return this.Nrows - 1;
}
return num;
}
// Token: 0x060000D1 RID: 209 RVA: 0x00004348 File Offset: 0x00002548
public int ImageRowToMatrixRowStrict(int imrow)
{
imrow -= this.RowOffset;
int num = ((imrow >= 0 && imrow % this.RowStep == 0) ? (imrow / this.RowStep) : (-1));
if (num >= this.Nrows)
{
return -1;
}
return num;
}
// Token: 0x060000D2 RID: 210 RVA: 0x00004385 File Offset: 0x00002585
public int MatrixRowToImageRow(int mrow)
{
return mrow * this.RowStep + this.RowOffset;
}
// Token: 0x060000D3 RID: 211 RVA: 0x00004398 File Offset: 0x00002598
public ImageLine GetImageLineAtMatrixRow(int mrow)
{
if (mrow < 0 || mrow > this.Nrows)
{
throw new PngjException(string.Concat(new object[] { "Bad row ", mrow, ". Should be positive and less than ", this.Nrows }));
}
ImageLine imageLine = ((this.sampleType == ImageLine.ESampleType.INT) ? new ImageLine(this.ImgInfo, this.sampleType, this.SamplesUnpacked, this.Scanlines[mrow], null) : new ImageLine(this.ImgInfo, this.sampleType, this.SamplesUnpacked, null, this.ScanlinesB[mrow]));
imageLine.Rown = this.MatrixRowToImageRow(mrow);
return imageLine;
}
// Token: 0x0400006B RID: 107
internal readonly int channels;
// Token: 0x0400006C RID: 108
internal readonly int bitDepth;
// Token: 0x0400006D RID: 109
internal readonly int elementsPerRow;
}
}