diff --git a/build_linux64/libamscimglib4.linux64.a b/build_linux64/libamscimglib4.linux64.a index 4be89df..70356a1 100644 Binary files a/build_linux64/libamscimglib4.linux64.a and b/build_linux64/libamscimglib4.linux64.a differ diff --git a/build_linux64/libamscimglib4.linux64.so b/build_linux64/libamscimglib4.linux64.so index 8117d49..e16bb9e 100644 Binary files a/build_linux64/libamscimglib4.linux64.so and b/build_linux64/libamscimglib4.linux64.so differ diff --git a/build_linux64/objstore/amscimglib4_image.o b/build_linux64/objstore/amscimglib4_image.o index b4155d4..a0f1278 100644 Binary files a/build_linux64/objstore/amscimglib4_image.o and b/build_linux64/objstore/amscimglib4_image.o differ diff --git a/build_linux64/objstore/amscimglib4_tests.o b/build_linux64/objstore/amscimglib4_tests.o index e7b28f5..2f67644 100644 Binary files a/build_linux64/objstore/amscimglib4_tests.o and b/build_linux64/objstore/amscimglib4_tests.o differ diff --git a/build_linux64/tests b/build_linux64/tests index a6377f8..fd8511e 100644 Binary files a/build_linux64/tests and b/build_linux64/tests differ diff --git a/include/amscimglib4/amscimglib4_intl.h b/include/amscimglib4/amscimglib4_intl.h index 4db1202..93a5d9a 100644 --- a/include/amscimglib4/amscimglib4_intl.h +++ b/include/amscimglib4/amscimglib4_intl.h @@ -1,14 +1,14 @@ #ifndef __AMSCIMGLIB4_INTL_HPP__ #define __AMSCIMGLIB4_INTL_HPP__ -#include - #include #include #include #include #include +#include + #ifdef __cplusplus extern "C" { #endif diff --git a/include/amscimglib4/amscimglib4_tests.h b/include/amscimglib4/amscimglib4_tests.h index 47c1e36..0dc10d6 100644 --- a/include/amscimglib4/amscimglib4_tests.h +++ b/include/amscimglib4/amscimglib4_tests.h @@ -1,7 +1,17 @@ #ifndef __AMSCIMGLIB4_TESTS_HPP__ #define __AMSCIMGLIB4_TESTS_HPP__ -void amscimglib4_test_init(); +#ifdef __cplusplus +extern "C" { +#endif + +AMSCIMGLIB4_API void amscimglib4_test_init(); + +AMSCIMGLIB4_API void amscimglib4_test_loadsave(); + +#ifdef __cplusplus +}; //end extern "C" +#endif #endif diff --git a/src/amscimglib4/amscimglib4_image.c b/src/amscimglib4/amscimglib4_image.c index 2f3f772..332bdb2 100644 --- a/src/amscimglib4/amscimglib4_image.c +++ b/src/amscimglib4/amscimglib4_image.c @@ -90,7 +90,7 @@ AMSCIMGLIB4_API int amscimglib4_image_resize(amscimglib4_image *imgptr, int _siz return amscimglib4_failure; } - newdata = (unsigned char*) malloc(sizeof(char)*4*_sizex*_sizey); + newdata = (unsigned char*) malloc(sizeof(unsigned char)*4*_sizex*_sizey); if(newdata==NULL) { return amscimglib4_failure; @@ -106,7 +106,7 @@ AMSCIMGLIB4_API int amscimglib4_image_resize(amscimglib4_image *imgptr, int _siz for(K=0;K<4;K++) for(I=0;I<_sizex && Isizex;I++) for(J=0;J<_sizey && Jsizey;J++) - newdata[4*(I+_sizex*J)+K] = imgptr->data[4*(I+_sizex*J)+K]; + newdata[4*(I+_sizex*J)+K] = imgptr->data[4*(I+imgptr->sizex*J)+K]; } free(imgptr->data); @@ -154,8 +154,8 @@ AMSCIMGLIB4_API int amscimglib4_image_copy(amscimglib4_image *imgto, const amsci if(imgfrom->data!=NULL && imgto->data!=NULL) { for(K=0;K<4;K++) - for(I=0;Isizex;I++) - for(J=0;Jsizey;J++) + for(I=0;Isizex && Isizex;I++) + for(J=0;Jsizey && Jsizey;J++) imgto->data[4*(I+imgto->sizex*J)+K] = imgfrom->data[4*(I+imgfrom->sizex*J)+K]; } diff --git a/src/amscimglib4/amscimglib4_tests.c b/src/amscimglib4/amscimglib4_tests.c index 2432fb8..505c316 100644 --- a/src/amscimglib4/amscimglib4_tests.c +++ b/src/amscimglib4/amscimglib4_tests.c @@ -5,7 +5,61 @@ extern "C" { #endif +void amscimglib4_test_init() +{ + amscimglib4_image *img1 = NULL; + amscimglib4_image *img2 = NULL; + int res; + printf("Testing basic image operations for memory leaks...\n"); + printf("use valgrind...\n"); + + res = amscimglib4_image_new(&img1,1000,1000); printf("res=%d (%d,%d)\n",res,img1->sizex,img1->sizey); + res = amscimglib4_image_new(&img2,200,1000); printf("res=%d (%d,%d)\n",res,img2->sizex,img2->sizey); + + res = amscimglib4_image_resize(img1,500,500); printf("res=%d (%d,%d)\n",res,img1->sizex,img1->sizey); + res = amscimglib4_image_copy(img2,img1); printf("res=%d, img2=(%d,%d), img1=(%d,%d)\n",res, img2->sizex,img2->sizey,img1->sizex,img1->sizey); + + amscimglib4_image_delete(&img1); + amscimglib4_image_delete(&img2); + +} + +AMSCIMGLIB4_API void amscimglib4_test_loadsave() +{ + printf("Testing basic image loading/saving and conversion...\n"); + + amscimglib4_image *img1 = NULL; + amscimglib4_image *img2 = NULL; + + amscimglib4_image_new(&img1,1,1); + amscimglib4_image_new(&img2,1,1); + + amscimglib4_readimage_bmp("../testimg/testpfp0.bmp",img1); + printf("read in (%d,%d) bitmap image.\n",img1->sizex,img1->sizey); + amscimglib4_image_flipx(img1); + amscimglib4_writeimage_bmp("../testimg/testpfp0_1.bmp",img1); + amscimglib4_writeimage_jpeg("../testimg/testpfp0_2.jpg",img1,90); + amscimglib4_writeimage_png("../testimg/testpfp0_3.png",img1); + + amscimglib4_readimage("../testimg/testpfp0.png",img1); + printf("read in (%d,%d) png image.\n",img1->sizex,img1->sizey); + amscimglib4_transpose_image(img1); + amscimglib4_writeimage("../testimg/testpfp1_1.bmp",img1); + amscimglib4_writeimage("../testimg/testpfp1_2.png",img1); + amscimglib4_writeimage("../testimg/testpfp1_3.jpg",img1); + + amscimglib4_readimage("../testimg/testpfp0.jpg",img1); + printf("read in (%d,%d) jpg image.\n",img1->sizex,img1->sizey); + amscimglib4_image_flipy(img1); + amscimglib4_writeimage("../testimg/testpfp2_1.bmp",img1); + amscimglib4_writeimage("../testimg/testpfp2_2.png",img1); + amscimglib4_writeimage("../testimg/testpfp2_3.jpg",img1); + + amscimglib4_image_delete(&img1); + amscimglib4_image_delete(&img2); + +} #ifdef __cplusplus }; //end extern "C" diff --git a/src/main.cpp b/src/main.cpp index f991a05..e669072 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,5 +5,8 @@ int main(int argc, char* argv[]) { int ret = 0; + //amscimglib4_test_init(); + amscimglib4_test_loadsave(); + return ret; } \ No newline at end of file diff --git a/testimg/testpfp0.bmp b/testimg/testpfp0.bmp new file mode 100644 index 0000000..47691cd Binary files /dev/null and b/testimg/testpfp0.bmp differ diff --git a/testimg/testpfp0.jpg b/testimg/testpfp0.jpg new file mode 100644 index 0000000..000b50f Binary files /dev/null and b/testimg/testpfp0.jpg differ diff --git a/testimg/testpfp0.png b/testimg/testpfp0.png new file mode 100644 index 0000000..1d4e780 Binary files /dev/null and b/testimg/testpfp0.png differ diff --git a/testimg/testpfp0_1.bmp b/testimg/testpfp0_1.bmp new file mode 100644 index 0000000..6b500ad Binary files /dev/null and b/testimg/testpfp0_1.bmp differ diff --git a/testimg/testpfp0_2.jpg b/testimg/testpfp0_2.jpg new file mode 100644 index 0000000..f33f9b4 Binary files /dev/null and b/testimg/testpfp0_2.jpg differ diff --git a/testimg/testpfp0_3.png b/testimg/testpfp0_3.png new file mode 100644 index 0000000..1d90a8a Binary files /dev/null and b/testimg/testpfp0_3.png differ diff --git a/testimg/testpfp1_1.bmp b/testimg/testpfp1_1.bmp new file mode 100644 index 0000000..5299029 Binary files /dev/null and b/testimg/testpfp1_1.bmp differ diff --git a/testimg/testpfp1_2.png b/testimg/testpfp1_2.png new file mode 100644 index 0000000..5299029 Binary files /dev/null and b/testimg/testpfp1_2.png differ diff --git a/testimg/testpfp1_3.jpg b/testimg/testpfp1_3.jpg new file mode 100644 index 0000000..703426f Binary files /dev/null and b/testimg/testpfp1_3.jpg differ diff --git a/testimg/testpfp2_1.bmp b/testimg/testpfp2_1.bmp new file mode 100644 index 0000000..a7a39a4 Binary files /dev/null and b/testimg/testpfp2_1.bmp differ diff --git a/testimg/testpfp2_2.png b/testimg/testpfp2_2.png new file mode 100644 index 0000000..a7a39a4 Binary files /dev/null and b/testimg/testpfp2_2.png differ diff --git a/testimg/testpfp2_3.jpg b/testimg/testpfp2_3.jpg new file mode 100644 index 0000000..a079c24 Binary files /dev/null and b/testimg/testpfp2_3.jpg differ