scripts
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace Hjg.Pngcs.Chunks
|
||||
{
|
||||
// Token: 0x0200002B RID: 43
|
||||
public class PngChunkITXT : PngChunkTextVar
|
||||
{
|
||||
// Token: 0x0600017A RID: 378 RVA: 0x0000677D File Offset: 0x0000497D
|
||||
public PngChunkITXT(ImageInfo info)
|
||||
: base("iTXt", info)
|
||||
{
|
||||
}
|
||||
|
||||
// Token: 0x0600017B RID: 379 RVA: 0x000067A4 File Offset: 0x000049A4
|
||||
public override ChunkRaw CreateRawChunk()
|
||||
{
|
||||
if (this.key.Length == 0)
|
||||
{
|
||||
throw new PngjException("Text chunk key must be non empty");
|
||||
}
|
||||
MemoryStream memoryStream = new MemoryStream();
|
||||
ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(this.key));
|
||||
memoryStream.WriteByte(0);
|
||||
memoryStream.WriteByte(this.compressed ? 1 : 0);
|
||||
memoryStream.WriteByte(0);
|
||||
ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(this.langTag));
|
||||
memoryStream.WriteByte(0);
|
||||
ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytesUTF8(this.translatedTag));
|
||||
memoryStream.WriteByte(0);
|
||||
byte[] array = ChunkHelper.ToBytesUTF8(this.val);
|
||||
if (this.compressed)
|
||||
{
|
||||
array = ChunkHelper.compressBytes(array, true);
|
||||
}
|
||||
ChunkHelper.WriteBytesToStream(memoryStream, array);
|
||||
byte[] array2 = memoryStream.ToArray();
|
||||
ChunkRaw chunkRaw = base.createEmptyChunk(array2.Length, false);
|
||||
chunkRaw.Data = array2;
|
||||
return chunkRaw;
|
||||
}
|
||||
|
||||
// Token: 0x0600017C RID: 380 RVA: 0x00006870 File Offset: 0x00004A70
|
||||
public override void ParseFromRaw(ChunkRaw c)
|
||||
{
|
||||
int num = 0;
|
||||
int[] array = new int[3];
|
||||
for (int i = 0; i < c.Data.Length; i++)
|
||||
{
|
||||
if (c.Data[i] == 0)
|
||||
{
|
||||
array[num] = i;
|
||||
num++;
|
||||
if (num == 1)
|
||||
{
|
||||
i += 2;
|
||||
}
|
||||
if (num == 3)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (num != 3)
|
||||
{
|
||||
throw new PngjException("Bad formed PngChunkITXT chunk");
|
||||
}
|
||||
this.key = ChunkHelper.ToString(c.Data, 0, array[0]);
|
||||
int num2 = array[0] + 1;
|
||||
this.compressed = c.Data[num2] != 0;
|
||||
num2++;
|
||||
if (this.compressed && c.Data[num2] != 0)
|
||||
{
|
||||
throw new PngjException("Bad formed PngChunkITXT chunk - bad compression method ");
|
||||
}
|
||||
this.langTag = ChunkHelper.ToString(c.Data, num2, array[1] - num2);
|
||||
this.translatedTag = ChunkHelper.ToStringUTF8(c.Data, array[1] + 1, array[2] - array[1] - 1);
|
||||
num2 = array[2] + 1;
|
||||
if (this.compressed)
|
||||
{
|
||||
byte[] array2 = ChunkHelper.compressBytes(c.Data, num2, c.Data.Length - num2, false);
|
||||
this.val = ChunkHelper.ToStringUTF8(array2);
|
||||
return;
|
||||
}
|
||||
this.val = ChunkHelper.ToStringUTF8(c.Data, num2, c.Data.Length - num2);
|
||||
}
|
||||
|
||||
// Token: 0x0600017D RID: 381 RVA: 0x000069A0 File Offset: 0x00004BA0
|
||||
public override void CloneDataFromRead(PngChunk other)
|
||||
{
|
||||
PngChunkITXT pngChunkITXT = (PngChunkITXT)other;
|
||||
this.key = pngChunkITXT.key;
|
||||
this.val = pngChunkITXT.val;
|
||||
this.compressed = pngChunkITXT.compressed;
|
||||
this.langTag = pngChunkITXT.langTag;
|
||||
this.translatedTag = pngChunkITXT.translatedTag;
|
||||
}
|
||||
|
||||
// Token: 0x0600017E RID: 382 RVA: 0x000069F0 File Offset: 0x00004BF0
|
||||
public bool IsCompressed()
|
||||
{
|
||||
return this.compressed;
|
||||
}
|
||||
|
||||
// Token: 0x0600017F RID: 383 RVA: 0x000069F8 File Offset: 0x00004BF8
|
||||
public void SetCompressed(bool compressed)
|
||||
{
|
||||
this.compressed = compressed;
|
||||
}
|
||||
|
||||
// Token: 0x06000180 RID: 384 RVA: 0x00006A01 File Offset: 0x00004C01
|
||||
public string GetLangtag()
|
||||
{
|
||||
return this.langTag;
|
||||
}
|
||||
|
||||
// Token: 0x06000181 RID: 385 RVA: 0x00006A09 File Offset: 0x00004C09
|
||||
public void SetLangtag(string langtag)
|
||||
{
|
||||
this.langTag = langtag;
|
||||
}
|
||||
|
||||
// Token: 0x06000182 RID: 386 RVA: 0x00006A12 File Offset: 0x00004C12
|
||||
public string GetTranslatedTag()
|
||||
{
|
||||
return this.translatedTag;
|
||||
}
|
||||
|
||||
// Token: 0x06000183 RID: 387 RVA: 0x00006A1A File Offset: 0x00004C1A
|
||||
public void SetTranslatedTag(string translatedTag)
|
||||
{
|
||||
this.translatedTag = translatedTag;
|
||||
}
|
||||
|
||||
// Token: 0x040000D8 RID: 216
|
||||
public const string ID = "iTXt";
|
||||
|
||||
// Token: 0x040000D9 RID: 217
|
||||
private bool compressed;
|
||||
|
||||
// Token: 0x040000DA RID: 218
|
||||
private string langTag = "";
|
||||
|
||||
// Token: 0x040000DB RID: 219
|
||||
private string translatedTag = "";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user