mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 07:43:03 +04:00
Merge pull request #28615 from Kumataro:fix28606
imgcodecs(png): support cICP metadata for imreadWithMetadata() #28615 Close https://github.com/opencv/opencv/issues/28606 Related https://github.com/opencv/opencv/pull/27741 (support for imwriteWithMetadata) ### Pull Request Readiness Checklist See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request - [x] I agree to contribute to the project under Apache 2 License. - [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV - [x] The PR is proposed to the proper branch - [x] There is a reference to the original bug report and related work - [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable Patch to opencv_extra has the same branch name. - [ ] The feature is well documented and sample code can be built with the project CMake
This commit is contained in:
@@ -684,6 +684,20 @@ bool PngDecoder::readData( Mat& img )
|
||||
m_exif.parseExif(exif, num_exif);
|
||||
}
|
||||
#endif
|
||||
#ifdef PNG_cICP_SUPPORTED
|
||||
png_byte prim_id, tran_id, matrix_id, video_full_range_flag;
|
||||
if (png_get_cICP(m_png_ptr, m_info_ptr, &prim_id, &tran_id, &matrix_id, &video_full_range_flag))
|
||||
{
|
||||
uint8_t cicp_data[4] = {
|
||||
static_cast<uint8_t>(prim_id),
|
||||
static_cast<uint8_t>(tran_id),
|
||||
static_cast<uint8_t>(matrix_id),
|
||||
static_cast<uint8_t>(video_full_range_flag)
|
||||
};
|
||||
auto& out = m_metadata[IMAGE_METADATA_CICP];
|
||||
out.insert(out.end(), cicp_data, cicp_data + 4);
|
||||
}
|
||||
#endif
|
||||
|
||||
result = true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user