public MemoryStream ExportToStream(int tfc, string cachepath) { MemoryStream m = new MemoryStream(); if (tfc < 0 || tfc >= TextureTFCs.Count) { return(m); } if (TextureTFCs[tfc].InCache && cachepath != "") { TFCFile TFCf = new TFCFile(cachepath); if (TFCf.CheckTFC(TextureTFCs[tfc].offset)) { ImageF = new ImageFile(TFCf.getRawTFCComp(TextureTFCs[tfc].offset), T2D.PixelFormat, TextureTFCs[tfc].sizeX, TextureTFCs[tfc].sizeY); } else { return(m); } } else { if (ImageF != null) { m = ImageF.ExportToStream(); } return(m); } if (!TextureTFCs[tfc].InCache) { int SizeX = TextureTFCs[tfc].sizeX; int SizeY = TextureTFCs[tfc].sizeY; int Size = (int)TextureTFCs[tfc].size; int Offset = (int)TextureTFCs[tfc].offset; byte[] buff = new byte[Size]; for (int i = 0; i < Size; i++) { buff[i] = memory[Offset + i]; } ImageF = new ImageFile(buff, T2D.PixelFormat, SizeX, SizeY); } if (T2D.PixelFormat == "PF_DXT1\0" || T2D.PixelFormat == "PF_DXT5\0" || T2D.PixelFormat == "PF_A8R8G8B8\0" || T2D.PixelFormat == "PF_G8\0" || T2D.PixelFormat == "PF_V8U8\0") { m = ImageF.ExportToStream(); } return(m); }
public void ExportToFile(int tfc, string path = "", string cachepath = "") { if (tfc < 0 || tfc >= TextureTFCs.Count) { return; } if (TextureTFCs[tfc].InCache == true) { TFCFile TFCf = new TFCFile(cachepath); if (TFCf.CheckTFC(TextureTFCs[tfc].offset)) { ImageF = new ImageFile(TFCf.getRawTFCComp(TextureTFCs[tfc].offset), T2D.PixelFormat, TextureTFCs[tfc].sizeX, TextureTFCs[tfc].sizeY); } else { return; } } else { int SizeX = TextureTFCs[tfc].sizeX; int SizeY = TextureTFCs[tfc].sizeY; int Size = (int)TextureTFCs[tfc].size; int Offset = (int)TextureTFCs[tfc].offset; byte[] buff = new byte[Size]; for (int i = 0; i < Size; i++) { buff[i] = memory[Offset + i]; } ImageF = new ImageFile(buff, T2D.PixelFormat, SizeX, SizeY); } if (T2D.PixelFormat == "PF_DXT1\0" || T2D.PixelFormat == "PF_DXT5\0" || T2D.PixelFormat == "PF_A8R8G8B8\0" || T2D.PixelFormat == "PF_G8\0" || T2D.PixelFormat == "PF_V8U8\0") { ImageF.ExportToFile(path); } }
public MemoryStream ExportToStream(int tfc, string cachepath) { MemoryStream m = new MemoryStream(); if (tfc < 0 || tfc >= TextureTFCs.Count) return m; if (TextureTFCs[tfc].InCache && cachepath != "") { TFCFile TFCf = new TFCFile(cachepath); if (TFCf.CheckTFC(TextureTFCs[tfc].offset)) ImageF = new ImageFile(TFCf.getRawTFCComp(TextureTFCs[tfc].offset), T2D.PixelFormat, TextureTFCs[tfc].sizeX, TextureTFCs[tfc].sizeY); else return m; } else { if (ImageF != null) m = ImageF.ExportToStream(); return m; } if (!TextureTFCs[tfc].InCache) { int SizeX = TextureTFCs[tfc].sizeX; int SizeY = TextureTFCs[tfc].sizeY; int Size = (int)TextureTFCs[tfc].size; int Offset = (int)TextureTFCs[tfc].offset; byte[] buff = new byte[Size]; for (int i = 0; i < Size; i++) buff[i] = memory[Offset + i]; ImageF = new ImageFile(buff, T2D.PixelFormat, SizeX, SizeY); } if (T2D.PixelFormat == "PF_DXT1\0" || T2D.PixelFormat == "PF_DXT5\0" || T2D.PixelFormat == "PF_A8R8G8B8\0" || T2D.PixelFormat == "PF_G8\0" || T2D.PixelFormat == "PF_V8U8\0") m = ImageF.ExportToStream(); return m; }
public void ExportToFile(int tfc, string path = "", string cachepath = "") { if (tfc < 0 || tfc >= TextureTFCs.Count) return; if (TextureTFCs[tfc].InCache == true) { TFCFile TFCf = new TFCFile(cachepath); if (TFCf.CheckTFC(TextureTFCs[tfc].offset)) { ImageF = new ImageFile(TFCf.getRawTFCComp(TextureTFCs[tfc].offset), T2D.PixelFormat, TextureTFCs[tfc].sizeX, TextureTFCs[tfc].sizeY); } else return; } else { int SizeX = TextureTFCs[tfc].sizeX; int SizeY = TextureTFCs[tfc].sizeY; int Size = (int)TextureTFCs[tfc].size; int Offset = (int)TextureTFCs[tfc].offset; byte[] buff = new byte[Size]; for (int i = 0; i < Size; i++) buff[i] = memory[Offset + i]; ImageF = new ImageFile(buff, T2D.PixelFormat, SizeX, SizeY); } if (T2D.PixelFormat == "PF_DXT1\0" || T2D.PixelFormat == "PF_DXT5\0" || T2D.PixelFormat == "PF_A8R8G8B8\0" || T2D.PixelFormat == "PF_G8\0" || T2D.PixelFormat == "PF_V8U8\0") ImageF.ExportToFile(path); }