From d20d55ff5bd0369a04420d56611833b1768405d2 Mon Sep 17 00:00:00 2001 From: dependabot-abi Date: Wed, 24 Jul 2024 10:46:52 +1200 Subject: [PATCH] Prepare release. --- CHANGELOG.txt | 3 +++ CMakeLists.txt | 2 +- src/general/image_utilities.cpp | 2 +- tests/image/image.cpp | 35 ++++++++++++++++++++------ tests/resources/AWA015_PTA_1_test.png | Bin 0 -> 94 bytes 5 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 tests/resources/AWA015_PTA_1_test.png diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 474f72552..08ae2299f 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,8 @@ CHANGE LOG: Zinc Library +v4.1.2 +Fix bug with loading images with that have a depth that are not integrals of a byte. + v4.1.1 Fix empty classifiers for Python packaging. Drop support for OS X Mountain Lion and below (last released 2015). diff --git a/CMakeLists.txt b/CMakeLists.txt index f61cb737a..5d4aacb59 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,7 @@ if(POLICY CMP0086) endif() # This is the project name and shows up in IDEs -project(Zinc VERSION 4.1.1 LANGUAGES C CXX) +project(Zinc VERSION 4.1.2 LANGUAGES C CXX) # Set this to the development release or release candidate version. set(Zinc_DEVELOPER_VERSION "") diff --git a/src/general/image_utilities.cpp b/src/general/image_utilities.cpp index b71f108e1..7aeffbfe9 100644 --- a/src/general/image_utilities.cpp +++ b/src/general/image_utilities.cpp @@ -5642,7 +5642,7 @@ Extracts parameters from that matter for a Cmgui_image *number_of_components = 3; } } - *number_of_bytes_per_component = magick_image->depth/8; + *number_of_bytes_per_component = (magick_image->depth + 7) / 8; DestroyExceptionInfo(magick_exception); return_code = 1; } diff --git a/tests/image/image.cpp b/tests/image/image.cpp index 6f40ed16c..83d16064d 100644 --- a/tests/image/image.cpp +++ b/tests/image/image.cpp @@ -73,19 +73,38 @@ TEST(cmzn_fieldmodule_create_image, read_png) TEST(ZincFieldImage, read_png) { - ZincTestSetupCpp zinc; + ZincTestSetupCpp zinc; - FieldImage im = zinc.fm.createFieldImage(); - EXPECT_TRUE(im.isValid()); + FieldImage im = zinc.fm.createFieldImage(); + EXPECT_TRUE(im.isValid()); - StreaminformationImage si = im.createStreaminformationImage(); - EXPECT_TRUE(si.isValid()); + StreaminformationImage si = im.createStreaminformationImage(); + EXPECT_TRUE(si.isValid()); std::string resource = resourcePath("image-1.png"); Streamresource sr = si.createStreamresourceFile(resource.c_str()); - EXPECT_TRUE(sr.isValid()); + EXPECT_TRUE(sr.isValid()); + + EXPECT_EQ(CMZN_OK, im.read(si)); +} + +TEST(ZincFieldImage, read_png_1_bit_depth) +{ + ZincTestSetupCpp zinc; + + FieldImage im = zinc.fm.createFieldImage(); + EXPECT_TRUE(im.isValid()); + + StreaminformationImage si = im.createStreaminformationImage(); + EXPECT_TRUE(si.isValid()); + + std::string resource = resourcePath("AWA015_PTA_1_test.png"); + Streamresource sr = si.createStreamresourceFile(resource.c_str()); + EXPECT_TRUE(sr.isValid()); + + EXPECT_EQ(CMZN_OK, im.read(si)); - EXPECT_EQ(CMZN_OK, im.read(si)); + EXPECT_EQ(8, im.getNumberOfBitsPerComponent()); } TEST(ZincFieldImage, set_get_buffer) @@ -106,7 +125,7 @@ TEST(ZincFieldImage, set_get_buffer) int myArray[3] = {4,3,2}; EXPECT_EQ(CMZN_OK, im.setSizeInPixels(3, myArray)); - unsigned int actualSize = 4 *3 * 2 * 2; + unsigned int actualSize = 4 * 3 * 2 * 2; unsigned char *buffer = new unsigned char[actualSize]; for (unsigned int i = 0; i < actualSize; i++) { diff --git a/tests/resources/AWA015_PTA_1_test.png b/tests/resources/AWA015_PTA_1_test.png new file mode 100644 index 0000000000000000000000000000000000000000..3816da33a059fa498bbff77579d41ccb732f468a GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^+#t*dBp4d6dvyaT_7YEDSN0d|0z7P@&(fJr0)>P; pT^vI=W+wkQc!0sZeu99H0K+y%uAMy6v)6z$db;|#taD0e0swO~7D@mB literal 0 HcmV?d00001