comparison Core/Images/ImageProcessing.h @ 2489:e91bab2d8c75

Bresenham's line algorithm
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 13 Mar 2018 21:14:21 +0100
parents 345725b9350c
children 8ed9893c9230
comparison
equal deleted inserted replaced
2488:345725b9350c 2489:e91bab2d8c75
37 37
38 #include <stdint.h> 38 #include <stdint.h>
39 39
40 namespace Orthanc 40 namespace Orthanc
41 { 41 {
42 class ImageProcessing 42 namespace ImageProcessing
43 { 43 {
44 public: 44 void Copy(ImageAccessor& target,
45 static void Copy(ImageAccessor& target, 45 const ImageAccessor& source);
46 const ImageAccessor& source);
47 46
48 static void Convert(ImageAccessor& target, 47 void Convert(ImageAccessor& target,
49 const ImageAccessor& source); 48 const ImageAccessor& source);
50 49
51 static void Set(ImageAccessor& image, 50 void Set(ImageAccessor& image,
52 int64_t value); 51 int64_t value);
53 52
54 static void Set(ImageAccessor& image, 53 void Set(ImageAccessor& image,
55 uint8_t red, 54 uint8_t red,
56 uint8_t green, 55 uint8_t green,
57 uint8_t blue, 56 uint8_t blue,
58 uint8_t alpha); 57 uint8_t alpha);
59 58
60 static void ShiftRight(ImageAccessor& target, 59 void ShiftRight(ImageAccessor& target,
61 unsigned int shift); 60 unsigned int shift);
62 61
63 static void GetMinMaxIntegerValue(int64_t& minValue, 62 void GetMinMaxIntegerValue(int64_t& minValue,
64 int64_t& maxValue, 63 int64_t& maxValue,
65 const ImageAccessor& image); 64 const ImageAccessor& image);
66 65
67 static void GetMinMaxFloatValue(float& minValue, 66 void GetMinMaxFloatValue(float& minValue,
68 float& maxValue, 67 float& maxValue,
69 const ImageAccessor& image); 68 const ImageAccessor& image);
70 69
71 static void AddConstant(ImageAccessor& image, 70 void AddConstant(ImageAccessor& image,
72 int64_t value); 71 int64_t value);
73 72
74 // "useRound" is expensive 73 // "useRound" is expensive
75 static void MultiplyConstant(ImageAccessor& image, 74 void MultiplyConstant(ImageAccessor& image,
76 float factor, 75 float factor,
77 bool useRound); 76 bool useRound);
78 77
79 // "useRound" is expensive 78 // "useRound" is expensive
80 static void ShiftScale(ImageAccessor& image, 79 void ShiftScale(ImageAccessor& image,
81 float offset, 80 float offset,
82 float scaling, 81 float scaling,
83 bool useRound); 82 bool useRound);
84 83
85 static void Invert(ImageAccessor& image); 84 void Invert(ImageAccessor& image);
85
86 void DrawLineSegment(ImageAccessor& image,
87 int x0,
88 int y0,
89 int x1,
90 int y1,
91 int64_t value);
92
93 void DrawLineSegment(ImageAccessor& image,
94 int x0,
95 int y0,
96 int x1,
97 int y1,
98 uint8_t red,
99 uint8_t green,
100 uint8_t blue,
101 uint8_t alpha);
86 }; 102 };
87 } 103 }