Altair200333

Untitled

Aug 31st, 2021
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.89 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using K4os.Compression.LZ4;
  7.  
  8. namespace ConsoleApp1
  9. {
  10.     class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             unsafe
  15.             {
  16.                 float[] array = new float[1024];
  17.                 for (int i = 0; i < array.Length; i++)
  18.                 {
  19.                     array[i] = i;
  20.                 }
  21.  
  22.                 fixed (void* ptr = &array[0])
  23.                 {
  24.                     byte* dataPrt = (byte*) ptr;
  25.  
  26.                     var encodedBytes = new byte[LZ4Codec.MaximumOutputSize(array.Length*4)];
  27.                     int encodedLength = 0;
  28.                     fixed(byte* output = &encodedBytes[0])
  29.                     {
  30.                         encodedLength = LZ4Codec.Encode(
  31.                             dataPrt, array.Length*4,
  32.                             output, encodedBytes.Length);
  33.                     }
  34.                     //--
  35.                     var decodedBytes = new byte[array.Length*4]; // or source.Length * 255 to be safe
  36.                     var decodedLength = LZ4Codec.Decode(
  37.                         encodedBytes, 0, encodedLength,
  38.                         decodedBytes, 0, decodedBytes.Length);
  39.  
  40.                     float[] uncompressed = new float[array.Length];
  41.                     fixed (void* decodedVoidPtr = &decodedBytes[0])
  42.                     {
  43.                         float* decodedPtr = (float*) decodedVoidPtr;
  44.                         for (int i = 0; i < array.Length; i++)
  45.                         {
  46.                             uncompressed[i] = *decodedPtr;
  47.                             decodedPtr++;
  48.                         }
  49.                     }
  50.                     Console.WriteLine("Finished");
  51.                 }
  52.             }
  53.  
  54.             //compressAboba();
  55.         }
  56.  
  57.         private static void compressAboba()
  58.         {
  59.             var data = "bibaandbobaisabobaAAAAAAAAAAAAAkurwa";
  60.             var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(data);
  61.             var string64 = System.Convert.ToBase64String(plainTextBytes);
  62.             var bytes64 = System.Text.Encoding.UTF8.GetBytes(string64);
  63.  
  64.  
  65.             var encodedBytes = new byte[LZ4Codec.MaximumOutputSize(bytes64.Length)];
  66.             var encodedLength = LZ4Codec.Encode(
  67.                 bytes64, 0, bytes64.Length,
  68.                 encodedBytes, 0, encodedBytes.Length);
  69.  
  70.             var decodedBytes = new byte[string64.Length]; // or source.Length * 255 to be safe
  71.             var decodedLength = LZ4Codec.Decode(
  72.                 encodedBytes, 0, encodedLength,
  73.                 decodedBytes, 0, decodedBytes.Length);
  74.  
  75.             Console.WriteLine(System.Text.Encoding.UTF8.GetString(bytes64));
  76.             Console.WriteLine(System.Text.Encoding.UTF8.GetString(decodedBytes, 0, decodedLength));
  77.         }
  78.     }
  79. }
  80.  
Add Comment
Please, Sign In to add comment