using System; using System.Collections.Generic; namespace Hjg.Pngcs.Chunks { // Token: 0x02000011 RID: 17 public class PngMetadata { // Token: 0x06000067 RID: 103 RVA: 0x0000310B File Offset: 0x0000130B internal PngMetadata(ChunksList chunks) { this.chunkList = chunks; if (chunks is ChunksListForWrite) { this.ReadOnly = false; return; } this.ReadOnly = true; } // Token: 0x06000068 RID: 104 RVA: 0x00003134 File Offset: 0x00001334 public void QueueChunk(PngChunk chunk, bool lazyOverwrite) { ChunksListForWrite chunkListW = this.getChunkListW(); if (this.ReadOnly) { throw new PngjException("cannot set chunk : readonly metadata"); } if (lazyOverwrite) { ChunkHelper.TrimList(chunkListW.GetQueuedChunks(), new ChunkPredicateEquiv(chunk)); } chunkListW.Queue(chunk); } // Token: 0x06000069 RID: 105 RVA: 0x00003178 File Offset: 0x00001378 public void QueueChunk(PngChunk chunk) { this.QueueChunk(chunk, true); } // Token: 0x0600006A RID: 106 RVA: 0x00003182 File Offset: 0x00001382 private ChunksListForWrite getChunkListW() { return (ChunksListForWrite)this.chunkList; } // Token: 0x0600006B RID: 107 RVA: 0x00003190 File Offset: 0x00001390 public double[] GetDpi() { PngChunk byId = this.chunkList.GetById1("pHYs", true); if (byId == null) { return new double[] { -1.0, -1.0 }; } return ((PngChunkPHYS)byId).GetAsDpi2(); } // Token: 0x0600006C RID: 108 RVA: 0x000031E0 File Offset: 0x000013E0 public void SetDpi(double dpix, double dpiy) { PngChunkPHYS pngChunkPHYS = new PngChunkPHYS(this.chunkList.imageInfo); pngChunkPHYS.SetAsDpi2(dpix, dpiy); this.QueueChunk(pngChunkPHYS); } // Token: 0x0600006D RID: 109 RVA: 0x0000320D File Offset: 0x0000140D public void SetDpi(double dpi) { this.SetDpi(dpi, dpi); } // Token: 0x0600006E RID: 110 RVA: 0x00003218 File Offset: 0x00001418 public PngChunkTIME SetTimeNow(int nsecs) { PngChunkTIME pngChunkTIME = new PngChunkTIME(this.chunkList.imageInfo); pngChunkTIME.SetNow(nsecs); this.QueueChunk(pngChunkTIME); return pngChunkTIME; } // Token: 0x0600006F RID: 111 RVA: 0x00003245 File Offset: 0x00001445 public PngChunkTIME SetTimeNow() { return this.SetTimeNow(0); } // Token: 0x06000070 RID: 112 RVA: 0x00003250 File Offset: 0x00001450 public PngChunkTIME SetTimeYMDHMS(int year, int mon, int day, int hour, int min, int sec) { PngChunkTIME pngChunkTIME = new PngChunkTIME(this.chunkList.imageInfo); pngChunkTIME.SetYMDHMS(year, mon, day, hour, min, sec); this.QueueChunk(pngChunkTIME, true); return pngChunkTIME; } // Token: 0x06000071 RID: 113 RVA: 0x00003286 File Offset: 0x00001486 public PngChunkTIME GetTime() { return (PngChunkTIME)this.chunkList.GetById1("tIME"); } // Token: 0x06000072 RID: 114 RVA: 0x000032A0 File Offset: 0x000014A0 public string GetTimeAsString() { PngChunkTIME time = this.GetTime(); if (time != null) { return time.GetAsString(); } return ""; } // Token: 0x06000073 RID: 115 RVA: 0x000032C4 File Offset: 0x000014C4 public PngChunkTextVar SetText(string key, string val, bool useLatin1, bool compress) { if (compress && !useLatin1) { throw new PngjException("cannot compress non latin text"); } PngChunkTextVar pngChunkTextVar; if (useLatin1) { if (compress) { pngChunkTextVar = new PngChunkZTXT(this.chunkList.imageInfo); } else { pngChunkTextVar = new PngChunkTEXT(this.chunkList.imageInfo); } } else { pngChunkTextVar = new PngChunkITXT(this.chunkList.imageInfo); ((PngChunkITXT)pngChunkTextVar).SetLangtag(key); } pngChunkTextVar.SetKeyVal(key, val); this.QueueChunk(pngChunkTextVar, true); return pngChunkTextVar; } // Token: 0x06000074 RID: 116 RVA: 0x0000333E File Offset: 0x0000153E public PngChunkTextVar SetText(string key, string val) { return this.SetText(key, val, false, false); } // Token: 0x06000075 RID: 117 RVA: 0x0000334C File Offset: 0x0000154C public List GetTxtsForKey(string key) { List list = new List(); foreach (PngChunk pngChunk in this.chunkList.GetById("tEXt", key)) { list.Add((PngChunkTextVar)pngChunk); } foreach (PngChunk pngChunk2 in this.chunkList.GetById("zTXt", key)) { list.Add((PngChunkTextVar)pngChunk2); } foreach (PngChunk pngChunk3 in this.chunkList.GetById("iTXt", key)) { list.Add((PngChunkTextVar)pngChunk3); } return list; } // Token: 0x06000076 RID: 118 RVA: 0x00003460 File Offset: 0x00001660 public string GetTxtForKey(string key) { string text = ""; List txtsForKey = this.GetTxtsForKey(key); if (txtsForKey.Count == 0) { return text; } foreach (PngChunkTextVar pngChunkTextVar in txtsForKey) { text = text + pngChunkTextVar.GetVal() + "\n"; } return text.Trim(); } // Token: 0x06000077 RID: 119 RVA: 0x000034D8 File Offset: 0x000016D8 public PngChunkPLTE GetPLTE() { return (PngChunkPLTE)this.chunkList.GetById1("PLTE"); } // Token: 0x06000078 RID: 120 RVA: 0x000034F0 File Offset: 0x000016F0 public PngChunkPLTE CreatePLTEChunk() { PngChunkPLTE pngChunkPLTE = new PngChunkPLTE(this.chunkList.imageInfo); this.QueueChunk(pngChunkPLTE); return pngChunkPLTE; } // Token: 0x06000079 RID: 121 RVA: 0x00003516 File Offset: 0x00001716 public PngChunkTRNS GetTRNS() { return (PngChunkTRNS)this.chunkList.GetById1("tRNS"); } // Token: 0x0600007A RID: 122 RVA: 0x00003530 File Offset: 0x00001730 public PngChunkTRNS CreateTRNSChunk() { PngChunkTRNS pngChunkTRNS = new PngChunkTRNS(this.chunkList.imageInfo); this.QueueChunk(pngChunkTRNS); return pngChunkTRNS; } // Token: 0x04000048 RID: 72 private readonly ChunksList chunkList; // Token: 0x04000049 RID: 73 private readonly bool ReadOnly; } }