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; } }