private static VoxelObject ChangeColor(string file, Dictionary <Color, Color> replaceColorsWith) { var voxelStream = GameContext.ContentLoader.ReadStream(file); voxelStream.Seek(0L, SeekOrigin.Begin); var voxels = QbFile.Read(voxelStream); voxelStream.Seek(0L, SeekOrigin.Begin); var sVoxels = VoxelLoader.LoadQb(voxelStream, file, Vector3I.Zero, new Vector3I(voxels.size.X, voxels.size.Y, voxels.size.Z)); var colors = new List <Color>(); Helpers.VectorLoop(Vector3I.Zero, sVoxels.Size, (x, y, z) => { try { var color = sVoxels.Read(x, y, z); foreach (var check in replaceColorsWith) { if (color == check.Key) { color = check.Value; sVoxels.Write(x, y, z, check.Value); } } colors.Add(color); } catch { } }); return(sVoxels); }
protected override Bitmap GetThumbnailImage(uint width) { var size = (int)width; var voxelData = QbFile.Read(SelectedItemStream); if (voxelData == null) { return(null); } var bitmapBytes = Renderer.RenderBitmap((int)size, voxelData); // Convert Skia bytes to GDI Bitmap var format = PixelFormat.Format32bppArgb; var bitmap = new Bitmap(size, size, format); var bitmapData = bitmap.LockBits(new Rectangle(0, 0, size, size), ImageLockMode.WriteOnly, format); Marshal.Copy(bitmapBytes, 0, bitmapData.Scan0, bitmapBytes.Length); bitmap.UnlockBits(bitmapData); return(bitmap); }