Guest User

Untitled

a guest
Jun 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. package com.yorktea.tracker
  2. {
  3. import flash.display.BitmapData;
  4. import flash.events.EventDispatcher;
  5. import flash.geom.Point;
  6. import flash.utils.ByteArray;
  7.  
  8. public class ColorTracker extends EventDispatcher
  9. {
  10.  
  11. public function ColorTracker()
  12. {
  13. }
  14.  
  15. private function rgbToHsv(r:int,g:int,b:int):HSV
  16. {
  17. var hsv:HSV = new HSV();
  18.  
  19. var min:Number, max:Number, delta:Number;
  20. min = Math.min(r, g, b);
  21. max = Math.max(r, g, b);
  22.  
  23. hsv.v = max;
  24. delta = max - min;
  25. if (max != 0)
  26. {
  27. hsv.s = delta / max;
  28.  
  29. if (r == max)
  30. {
  31. hsv.h = (g-b) / delta;
  32. }
  33. else if (g==max)
  34. {
  35. hsv.h = 2 + (b-r) / delta;
  36. }
  37. else
  38. {
  39. hsv.h = 4 + (r-g) / delta;
  40. }
  41. hsv.h *= 60;
  42.  
  43. if (hsv.h < 0)
  44. {
  45. hsv.h += 360;
  46. }
  47. }
  48. else
  49. {
  50. hsv.h = 0;
  51. hsv.s = 0;
  52. hsv.v = 0;
  53. }
  54.  
  55. return hsv;
  56. }
  57.  
  58. public function update(bd:BitmapData):Point
  59. {
  60. var ba:ByteArray = bd.getPixels(bd.rect);
  61. ba.position = 0;
  62.  
  63. var px:uint;
  64. var r:int, g:int, b:int;
  65. var x:int, y:int;
  66.  
  67. for(y = 0;y < bd.height; y++)
  68. {
  69. for(x = 0;x < bd.width; x++)
  70. {
  71. px = ba.readUnsignedInt();
  72. r = (px >> 20) & 0xf;
  73. g = (px >> 12) & 0xf;
  74. b = (px >> 4) & 0xf;
  75.  
  76. var hsv:HSV = rgbToHsv(r, g, b);
  77. trace(hsv);
  78. }
  79. }
  80.  
  81. return null;
  82. }
  83. }
  84. }
  85.  
  86. class HSV
  87. {
  88.  
  89. public var h:Number;
  90. public var s:Number;
  91. public var v:Number;
  92.  
  93. public function toString():String
  94. {
  95. return "H: " + h + " S: " + s + " V:" + v;
  96. }
  97. }
Add Comment
Please, Sign In to add comment