ImageUtils.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include "Common.h"
  3. NS_BF_BEGIN;
  4. class ImageData;
  5. struct PackedColor
  6. {
  7. uint8 r;
  8. uint8 g;
  9. uint8 b;
  10. uint8 a;
  11. };
  12. class PackedColorGetR
  13. {
  14. public:
  15. int operator()(PackedColor color) { return color.r; }
  16. };
  17. class PackedColorGetG
  18. {
  19. public:
  20. int operator()(PackedColor color) { return color.g; }
  21. };
  22. class PackedColorGetB
  23. {
  24. public:
  25. int operator()(PackedColor color) { return color.b; }
  26. };
  27. class PackedColorGetGray
  28. {
  29. public:
  30. int operator()(PackedColor color) { return ((color.r * 300) + (color.g * 586) + (color.b * 113)) / 1000; }
  31. };
  32. ImageData* CreateResizedImageUnion(ImageData* src, int x, int y, int width, int height);
  33. ImageData* CreateEmptyResizedImageUnion(ImageData* src, int x, int y, int width, int height);
  34. void CrossfadeImage(ImageData* origImage, ImageData* newImage, float opacity);
  35. void BlendImage(ImageData* dest, ImageData* src, int destX, int destY, float alpha = 1.0f, int mixType = 'Nrml', bool fullAlpha = false);
  36. void BlendImagesTogether(ImageData* bottomImage, ImageData* topImage, ImageData* alphaImage);
  37. void SetImageAlpha(ImageData* image, ImageData* alphaImage);
  38. void MultiplyImageAlpha(ImageData* image, ImageData* alphaImage);
  39. void SetImageAlpha(ImageData* image, int alpha);
  40. void CopyImageBits(ImageData* dest, ImageData* src);
  41. NS_BF_END;