RGB.inc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /****************************************************************************************************
  2. * *
  3. * )( R G B A Conversion )( *
  4. * *
  5. * Copyright Š 2017 Abyss Morgan. All rights reserved. *
  6. * *
  7. * Download: https://github.com/AbyssMorgan/SA-MP/tree/master/include/SAM *
  8. * Publication: http://forum.sa-mp.com/showthread.php?t=590770 *
  9. * Website: http://8.ct8.pl *
  10. * *
  11. * Plugins: None *
  12. * Modules: None *
  13. * *
  14. * File Version: 2.4.0 *
  15. * SA:MP Version: 0.3.7 *
  16. * *
  17. * Functions: *
  18. * RGBAToHex(color,&red,&green,&blue,&alpha); //ShiftRGBAToHex *
  19. * HexToRGBA(&color,red,green,blue,alpha); //ShiftHexToRGBA *
  20. * RGBToHex(color,&red,&green,&blue); //ShiftRGBToHex *
  21. * HexToRGB(&color,red,green,blue); //ShiftHexToRGB *
  22. * RGBAToRGB(color); //ShiftRGBAToRGB *
  23. * RGBToRGBA(color,alpha); //ShiftRGBToRGBA *
  24. * RGBToARGB(color,alpha); //ShiftRGBToARGB *
  25. * ARGBToRGB(color); //ShiftARGBToRGB *
  26. * RGBAToARGB(color); //ShiftRGBAToARGB *
  27. * ARGBToRGBA(color); //ShiftARGBToRGBA *
  28. * GetRFromRGBA(color); //RGBA:0xFAB0A0FF R:0xFA000000 *
  29. * GetGFromRGBA(color); //RGBA:0xFAB0A0FF G:0x00B00000 *
  30. * GetBFromRGBA(color); //RGBA:0xFAB0A0FF B:0x0000A000 *
  31. * GetAFromRGBA(color); //RGBA:0xFAB0A0FF A:0x000000FF *
  32. * GetRHexFromRGBA(color); //RGBA:0xFAB0A0FF R:0xFA *
  33. * GetGHexFromRGBA(color); //RGBA:0xFAB0A0FF G:0xB0 *
  34. * GetBHexFromRGBA(color); //RGBA:0xFAB0A0FF B:0xA0 *
  35. * GetAHexFromRGBA(color); //RGBA:0xFAB0A0FF A:0xFF *
  36. * GetColorRGBA(color); //Return {RGB} *
  37. * GetColorRGB(color); //Return {RGB} *
  38. * GetColorARGB(color); //Return {RGB} *
  39. * AdjustColorLuminance(color,Float:adjust); *
  40. * *
  41. ****************************************************************************************************/
  42. #if defined _rgb_function
  43. #endinput
  44. #endif
  45. #define _rgb_function
  46. #define ShiftRGBAToHex(%0,%1,%2,%3,%4) (((%1) = ((%0) >>> 24)),((%2) = (((%0) >>> 16) & 0xFF)),((%3) = (((%0) >>> 8) & 0xFF)),((%4) = ((%0) & 0xFF)))
  47. #define ShiftHexToRGBA(%0,%1,%2,%3,%4) ((%0) = ((%4) & 0xFF) | (((%3) & 0xFF) << 8) | (((%2) & 0xFF) << 16) | ((%1) << 24))
  48. #define ShiftRGBToHex(%0,%1,%2,%3) (((%1) = (((%0) >>> 16) & 0xFF)),((%2) = (((%0) >>> 8) & 0xFF)),((%3) = ((%0) & 0xFF)))
  49. #define ShiftHexToRGB(%0,%1,%2,%3) ((%0) = ((%3) & 0xFF) | (((%2) & 0xFF) << 8) | (((%1) & 0xFF) << 16))
  50. #define ShiftRGBAToRGB(%0) (((%0) >>> 8) & 0xFFFFFF)
  51. #define ShiftRGBToRGBA(%0,%1) (((%0) << 8) | (%1))
  52. #define ShiftRGBToARGB(%0,%1) ((%0) | ((%1) << 24))
  53. #define ShiftARGBToRGB(%0) ((%0) & 0x00FFFFFF)
  54. #define ShiftRGBAToARGB(%0) ((((%0) << 24) & 0xFF000000) | (((%0) >>> 8) & 0xFFFFFF))
  55. #define ShiftARGBToRGBA(%0) ((((%0) << 8) & 0xFFFFFF00) | (((%0) >>> 24) & 0xFF))
  56. #define GetRFromRGBA(%0) ((%0) & 0xFF000000)
  57. #define GetGFromRGBA(%0) ((%0) & 0x00FF0000)
  58. #define GetBFromRGBA(%0) ((%0) & 0x0000FF00)
  59. #define GetAFromRGBA(%0) ((%0) & 0x000000FF)
  60. #define GetRHexFromRGBA(%0) (((%0) >>> 24) & 0xFF)
  61. #define GetGHexFromRGBA(%0) (((%0) >>> 16) & 0xFF)
  62. #define GetBHexFromRGBA(%0) (((%0) >>> 8) & 0xFF)
  63. #define GetAHexFromRGBA(%0) ((%0) & 0xFF)
  64. stock GetColorRGBA(color){
  65. new string[10];
  66. format(string,sizeof(string),"{%06x}",ShiftRGBAToRGB(color));
  67. return string;
  68. }
  69. stock GetColorARGB(color){
  70. new string[10];
  71. format(string,sizeof(string),"{%06x}",ShiftARGBToRGB(color));
  72. return string;
  73. }
  74. stock GetColorRGB(color){
  75. new string[10];
  76. format(string,sizeof(string),"{%06x}",(color & 0x00FFFFFF));
  77. return string;
  78. }
  79. stock AdjustColorLuminance(color,Float:adjust){
  80. new r,g,b,a;
  81. ShiftRGBAToHex(color,r,g,b,a);
  82. r = (floatround(r*adjust) & 0xFF);
  83. g = (floatround(g*adjust) & 0xFF);
  84. b = (floatround(b*adjust) & 0xFF);
  85. ShiftHexToRGBA(color,r,g,b,a);
  86. return color;
  87. }
  88. #define RGBAToHex ShiftRGBAToHex
  89. #define HexToRGBA ShiftHexToRGBA
  90. #define RGBToHex ShiftRGBToHex
  91. #define HexToRGB ShiftHexToRGB
  92. #define RGBAToRGB ShiftRGBAToRGB
  93. #define RGBToRGBA ShiftRGBToRGBA
  94. #define RGBToARGB ShiftRGBToARGB
  95. #define ARGBToRGB ShiftARGBToRGB
  96. #define RGBAToARGB ShiftRGBAToARGB
  97. #define ARGBToRGBA ShiftARGBToRGBA
  98. #define GetColor GetColorRGBA
  99. //EOF