]> mj.ucw.cz Git - libucw.git/blob - images/image-test.c
image segmentation moved to a new file
[libucw.git] / images / image-test.c
1 #undef LOCAL_DEBUG
2
3 #include "lib/lib.h"
4 #include "lib/mempool.h"
5 #include "images/images.h"
6 #include <string.h>
7
8 static uns want_image_iface;
9
10 static void
11 test_image_iface(void)
12 {
13   struct mempool *pool;
14   struct image_thread it;
15   struct image *i1, *i2;
16   struct image s1;
17   int i;
18
19   pool = mp_new(1024);
20   image_thread_init(&it);
21
22   i1 = image_new(&it, 731, 327, COLOR_SPACE_RGB, NULL);
23   ASSERT(i1);
24   ASSERT(i1->pixel_size == 3);
25   image_destroy(i1);
26
27   i1 = image_new(&it, 2214, 0, COLOR_SPACE_RGB, NULL);
28   ASSERT(!i1);
29
30   i1 = image_new(&it, 0xffffff, 0xffffff, COLOR_SPACE_RGB, NULL);
31   ASSERT(!i1);
32
33   i1 = image_new(&it, 370, 100, COLOR_SPACE_GRAYSCALE, pool);
34   ASSERT(i1);
35   ASSERT(i1->pixel_size == 1);
36   image_destroy(i1);
37   mp_flush(pool);
38
39   i1 = image_new(&it, 373, 101, COLOR_SPACE_RGB | IMAGE_ALIGNED, NULL);
40   ASSERT(i1);
41   ASSERT(i1->pixel_size == 4);
42   ASSERT(IMAGE_SSE_ALIGN_SIZE >= 16);
43   ASSERT(!(i1->row_size & (IMAGE_SSE_ALIGN_SIZE - 1)));
44   ASSERT(!((addr_int_t)i1->pixels & (IMAGE_SSE_ALIGN_SIZE - 1)));
45   image_destroy(i1);
46
47   i1 = image_new(&it, 283, 329, COLOR_SPACE_RGB, NULL);
48   ASSERT(i1);
49   ASSERT(i1->pixel_size == 3);
50
51   i2 = image_clone(&it, i1, COLOR_SPACE_RGB, NULL);
52   ASSERT(i2);
53   ASSERT(i2->pixel_size == 3);
54   image_destroy(i2);
55
56   i2 = image_clone(&it, i1, COLOR_SPACE_RGB | IMAGE_PIXELS_ALIGNED, NULL);
57   ASSERT(i2);
58   ASSERT(i2->pixel_size == 4);
59   image_destroy(i2);
60
61   i = image_init_subimage(&it, &s1, i1, 29, 39, 283 - 29, 100);
62   ASSERT(i);
63   image_destroy(&s1);
64
65   image_destroy(i1);
66
67   image_thread_cleanup(&it);
68   mp_delete(pool);
69 }
70
71 int
72 main(int argc, char **argv)
73 {
74   for (int i = 0; i < argc; i++)
75     if (!strcmp(argv[i], "image-iface"))
76       want_image_iface = 1;
77   if (want_image_iface)
78     test_image_iface();
79   return 0;
80 }
81