private bool SetImage(Image img, int index, bool useCompression) { if (index > (int)AssetType.Max) { return(false); } if (img == null) { EntryTable.Entries[index].ImageData = null; EntryTable.Entries[index].VideoData = new byte[0]; EntryTable.Entries[index].TextureHeader = new byte[EntryTable.Entries[index].TextureHeader.Length]; return(true); } EntryTable.Entries[index].ImageData = img; var data = ImageToRawArgb(img); byte[] video = new byte[0], header = new byte[0]; if (!AuroraAssetDll.ProcessImageToAsset(ref data, img.Width, img.Height, useCompression, ref header, ref video)) { return(false); } EntryTable.Entries[index].VideoData = video; EntryTable.Entries[index].TextureHeader = header; return(true); }
private void SetImage(byte[] videoData, int index) { var imageData = new byte[0]; int imageWidth, imageHeight; if (!AuroraAssetDll.ProcessAssetToImage(ref EntryTable.Entries[index].TextureHeader, ref videoData, ref imageData, out imageWidth, out imageHeight)) { return; } EntryTable.Entries[index].VideoData = videoData; EntryTable.Entries[index].ImageData = RawArgbToImage(imageData, imageWidth, imageHeight); }
private static Image GetImage(byte[] data) { if (data[0] == 'D' || data[1] == 'D' || data[1] == 'S') { var imageData = new byte[0]; int imageWidth, imageHeight; AuroraAssetDll.ProcessDDSToImage(ref data, ref imageData, out imageWidth, out imageHeight); return(RawArgbToImage(imageData, imageWidth, imageHeight)); } using (var ms = new MemoryStream(data)) { var img = Image.FromStream(ms); var img2 = new Bitmap(img.Width, img.Height, PixelFormat.Format32bppArgb); var g = Graphics.FromImage(img); g.DrawImage(img2, new Point(0, 0)); g.Dispose(); img.Dispose(); return(img2); } }