ColorData.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. namespace TEAMModelOS.SDK.PngQuant
  4. {
  5. public class ColorData
  6. {
  7. public ColorData(int dataGranularity, int bitmapWidth, int bitmapHeight)
  8. {
  9. dataGranularity++;
  10. Weights = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  11. MomentsAlpha = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  12. MomentsRed = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  13. MomentsGreen = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  14. MomentsBlue = new long[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  15. Moments = new float[dataGranularity, dataGranularity, dataGranularity, dataGranularity];
  16. pixelsCount = bitmapWidth*bitmapHeight;
  17. pixels = new Pixel[pixelsCount];
  18. quantizedPixels = new int[pixelsCount];
  19. }
  20. public long[, , ,] Weights { get; private set; }
  21. public long[, , ,] MomentsAlpha { get; private set; }
  22. public long[, , ,] MomentsRed { get; private set; }
  23. public long[, , ,] MomentsGreen { get; private set; }
  24. public long[, , ,] MomentsBlue { get; private set; }
  25. public float[, , ,] Moments { get; private set; }
  26. public IList<int> QuantizedPixels { get { return quantizedPixels; } }
  27. public IList<Pixel> Pixels { get { return pixels; } }
  28. public int PixelsCount { get { return pixels.Length; } }
  29. public void AddPixel(Pixel pixel, int quantizedPixel)
  30. {
  31. pixels[pixelFillingCounter] = pixel;
  32. quantizedPixels[pixelFillingCounter++] = quantizedPixel;
  33. }
  34. private Pixel[] pixels;
  35. private int[] quantizedPixels;
  36. private int pixelsCount;
  37. private int pixelFillingCounter;
  38. }
  39. }