**Merge with extra**: https://github.com/opencv/opencv_extra/pull/1050
For 32 bits per pixel with 3 or 4 channel destination images, apply scale factor and mask to parse BMP files correctly
closes#23445
### Pull Request Readiness Checklist
- [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
* bmp specified BI_BITFIELDS should take care RGBA bit mask
* change the name
* support xrgb bmp file
* support xrgb bmp file(add test case)
* update testing code
* removed C API in the following modules: photo, video, imgcodecs, videoio
* trying to fix various compile errors and warnings on Windows and Linux
* continue to fix compile errors and warnings
* continue to fix compile errors, warnings, as well as the test failures
* trying to resolve compile warnings on Android
* Update cap_dc1394_v2.cpp
fix warning from the new GCC