32 #define TEST_NAME "util/bitmap"
41 BOOST_CHECK_EQUAL(
color.r, 0);
42 BOOST_CHECK_EQUAL(
color.g, 0);
43 BOOST_CHECK_EQUAL(
color.b, 0);
50 BOOST_CHECK_EQUAL(
color.r, 5);
51 BOOST_CHECK_EQUAL(
color.g, 5);
52 BOOST_CHECK_EQUAL(
color.b, 5);
58 BOOST_CHECK_EQUAL(color2.
r, 1);
59 BOOST_CHECK_EQUAL(color2.
g, 3);
60 BOOST_CHECK_EQUAL(color2.
b, 0);
65 BOOST_CHECK_EQUAL(bitmap.
Width(), 0);
66 BOOST_CHECK_EQUAL(bitmap.
Height(), 0);
67 BOOST_CHECK_EQUAL(bitmap.
Channels(), 0);
68 BOOST_CHECK_EQUAL(bitmap.
IsRGB(),
false);
69 BOOST_CHECK_EQUAL(bitmap.
IsGrey(),
false);
75 BOOST_CHECK_EQUAL(bitmap.
Width(), 100);
76 BOOST_CHECK_EQUAL(bitmap.
Height(), 100);
77 BOOST_CHECK_EQUAL(bitmap.
Channels(), 3);
78 BOOST_CHECK_EQUAL(bitmap.
IsRGB(),
true);
79 BOOST_CHECK_EQUAL(bitmap.
IsGrey(),
false);
85 BOOST_CHECK_EQUAL(bitmap.
Width(), 100);
86 BOOST_CHECK_EQUAL(bitmap.
Height(), 100);
87 BOOST_CHECK_EQUAL(bitmap.
Channels(), 1);
88 BOOST_CHECK_EQUAL(bitmap.
IsRGB(),
false);
89 BOOST_CHECK_EQUAL(bitmap.
IsGrey(),
true);
96 BOOST_CHECK_EQUAL(bitmap.
Width(), 0);
97 BOOST_CHECK_EQUAL(bitmap.
Height(), 0);
98 BOOST_CHECK_EQUAL(bitmap.
Channels(), 0);
99 BOOST_CHECK_EQUAL(bitmap.
NumBytes(), 0);
100 BOOST_CHECK_EQUAL(bitmap.
IsRGB(),
false);
101 BOOST_CHECK_EQUAL(bitmap.
IsGrey(),
false);
114 BOOST_CHECK_EQUAL(bitmap.
NumBytes(), 0);
116 BOOST_CHECK_EQUAL(bitmap.
NumBytes(), 3 * 100 * 100);
118 BOOST_CHECK_EQUAL(bitmap.
NumBytes(), 100 * 100);
129 BOOST_CHECK_EQUAL(array.size(), 12);
130 BOOST_CHECK_EQUAL(array[0], 0);
131 BOOST_CHECK_EQUAL(array[1], 0);
132 BOOST_CHECK_EQUAL(array[2], 0);
133 BOOST_CHECK_EQUAL(array[3], 0);
134 BOOST_CHECK_EQUAL(array[4], 0);
135 BOOST_CHECK_EQUAL(array[5], 2);
136 BOOST_CHECK_EQUAL(array[6], 0);
137 BOOST_CHECK_EQUAL(array[7], 0);
138 BOOST_CHECK_EQUAL(array[8], 1);
139 BOOST_CHECK_EQUAL(array[9], 0);
140 BOOST_CHECK_EQUAL(array[10], 0);
141 BOOST_CHECK_EQUAL(array[11], 3);
152 BOOST_CHECK_EQUAL(array.size(), 4);
153 BOOST_CHECK_EQUAL(array[0], 0);
154 BOOST_CHECK_EQUAL(array[1], 2);
155 BOOST_CHECK_EQUAL(array[2], 1);
156 BOOST_CHECK_EQUAL(array[3], 3);
167 BOOST_CHECK_EQUAL(array.size(), 12);
168 BOOST_CHECK_EQUAL(array[0], 0);
169 BOOST_CHECK_EQUAL(array[1], 0);
170 BOOST_CHECK_EQUAL(array[2], 0);
171 BOOST_CHECK_EQUAL(array[3], 0);
172 BOOST_CHECK_EQUAL(array[4], 0);
173 BOOST_CHECK_EQUAL(array[5], 0);
174 BOOST_CHECK_EQUAL(array[6], 0);
175 BOOST_CHECK_EQUAL(array[7], 0);
176 BOOST_CHECK_EQUAL(array[8], 0);
177 BOOST_CHECK_EQUAL(array[9], 1);
178 BOOST_CHECK_EQUAL(array[10], 2);
179 BOOST_CHECK_EQUAL(array[11], 3);
190 BOOST_CHECK_EQUAL(array.size(), 4);
191 BOOST_CHECK_EQUAL(array[0], 0);
192 BOOST_CHECK_EQUAL(array[1], 1);
193 BOOST_CHECK_EQUAL(array[2], 2);
194 BOOST_CHECK_EQUAL(array[3], 3);
222 for (
size_t r = 0; r < 3; ++r) {
224 for (
size_t c = 0; c < 3; ++c) {
227 BOOST_CHECK_EQUAL(scanline[c * 3 + FI_RGBA_RED],
color.r);
228 BOOST_CHECK_EQUAL(scanline[c * 3 + FI_RGBA_GREEN],
color.g);
229 BOOST_CHECK_EQUAL(scanline[c * 3 + FI_RGBA_BLUE],
color.b);
238 for (
size_t r = 0; r < 3; ++r) {
240 for (
size_t c = 0; c < 3; ++c) {
243 BOOST_CHECK_EQUAL(scanline[c],
color.r);
252 for (
int y = 0;
y < bitmap.
Height(); ++
y) {
253 for (
int x = 0;
x < bitmap.
Width(); ++
x) {
294 for (
int x = 0;
x < 50; ++
x) {
295 for (
int y = 0;
y < 50; ++
y) {
301 BOOST_CHECK_EQUAL(bitmap.
Width(), 50);
302 BOOST_CHECK_EQUAL(bitmap.
Height(), 50);
303 BOOST_CHECK_EQUAL(bitmap.
Channels(), 3);
304 for (
int x = 0;
x < 50; ++
x) {
305 for (
int y = 0;
y < 50; ++
y) {
317 for (
int x = 0;
x < 50; ++
x) {
318 for (
int y = 0;
y < 50; ++
y) {
324 BOOST_CHECK_EQUAL(bitmap.
Width(), 50);
325 BOOST_CHECK_EQUAL(bitmap.
Height(), 50);
326 BOOST_CHECK_EQUAL(bitmap.
Channels(), 1);
334 BOOST_CHECK_EQUAL(bitmap1.
Width(), 50);
335 BOOST_CHECK_EQUAL(bitmap1.
Height(), 25);
336 BOOST_CHECK_EQUAL(bitmap1.
Channels(), 3);
339 BOOST_CHECK_EQUAL(bitmap2.
Width(), 150);
340 BOOST_CHECK_EQUAL(bitmap2.
Height(), 20);
341 BOOST_CHECK_EQUAL(bitmap2.
Channels(), 3);
349 BOOST_CHECK_EQUAL(bitmap1.
Width(), 50);
350 BOOST_CHECK_EQUAL(bitmap1.
Height(), 25);
351 BOOST_CHECK_EQUAL(bitmap1.
Channels(), 1);
354 BOOST_CHECK_EQUAL(bitmap2.
Width(), 150);
355 BOOST_CHECK_EQUAL(bitmap2.
Height(), 20);
356 BOOST_CHECK_EQUAL(bitmap2.
Channels(), 1);
363 BOOST_CHECK_EQUAL(cloned_bitmap.
Width(), 100);
364 BOOST_CHECK_EQUAL(cloned_bitmap.
Height(), 100);
365 BOOST_CHECK_EQUAL(cloned_bitmap.
Channels(), 3);
366 BOOST_CHECK_NE(bitmap.
Data(), cloned_bitmap.
Data());
373 BOOST_CHECK_EQUAL(cloned_bitmap.
Width(), 100);
374 BOOST_CHECK_EQUAL(cloned_bitmap.
Height(), 100);
375 BOOST_CHECK_EQUAL(cloned_bitmap.
Channels(), 3);
376 BOOST_CHECK_NE(bitmap.
Data(), cloned_bitmap.
Data());
383 BOOST_CHECK_EQUAL(cloned_bitmap.
Width(), 100);
384 BOOST_CHECK_EQUAL(cloned_bitmap.
Height(), 100);
385 BOOST_CHECK_EQUAL(cloned_bitmap.
Channels(), 1);
386 BOOST_CHECK_NE(bitmap.
Data(), cloned_bitmap.
Data());
BOOST_AUTO_TEST_CASE(TestBitmapColorEmpty)
bool SetPixel(const int x, const int y, const BitmapColor< uint8_t > &color)
std::vector< uint8_t > ConvertToRowMajorArray() const
bool GetPixel(const int x, const int y, BitmapColor< uint8_t > *color) const
void Fill(const BitmapColor< uint8_t > &color)
const uint8_t * GetScanline(const int y) const
bool Allocate(const int width, const int height, const bool as_rgb)
void Rescale(const int new_width, const int new_height, const FREE_IMAGE_FILTER filter=FILTER_BILINEAR)
void Smooth(const float sigma_x, const float sigma_y)
bool InterpolateBilinear(const double x, const double y, BitmapColor< float > *color) const
std::vector< uint8_t > ConvertToColMajorArray() const
bool InterpolateNearestNeighbor(const double x, const double y, BitmapColor< uint8_t > *color) const
const FIBITMAP * Data() const
Bitmap CloneAsGrey() const
Bitmap CloneAsRGB() const
unsigned int BitsPerPixel() const
BitmapColor< D > Cast() const