HSVToColor.cpp 751 B

1234567891011121314151617181920
  1. // Copyright 2019 Google LLC.
  2. // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
  3. #include "tools/fiddle/examples.h"
  4. // HASH=311a59931ac340b90f202cd6ac399a0a
  5. REG_FIDDLE(HSVToColor, 256, 256, false, 3) {
  6. void draw(SkCanvas* canvas) {
  7. canvas->drawBitmap(source, 0, 0);
  8. for (int y = 0; y < 256; ++y) {
  9. for (int x = 0; x < 256; ++x) {
  10. SkColor color = source.getColor(x, y);
  11. SkScalar hsv[3];
  12. SkColorToHSV(color, hsv);
  13. hsv[0] = hsv[0] + 90 >= 360 ? hsv[0] - 270 : hsv[0] + 90;
  14. SkPaint paint;
  15. paint.setColor(SkHSVToColor((x + y) % 256, hsv));
  16. canvas->drawRect(SkRect::MakeXYWH(x, y, 1, 1), paint);
  17. }
  18. }
  19. }
  20. } // END FIDDLE