-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FL32 RGBA image reads look like scrambled RGB #6507
Comments
Thanks for the problem report. We can reproduce it and will have a patch to fix it in the GIT main branch @ https://github.com/ImageMagick/ImageMagick later today. The patch will be available in the beta releases of ImageMagick @ https://imagemagick.org/archive/beta/ by sometime tomorrow. |
Built ImageMagick-7.1.1-15~beta20230722.tar.gz on Intel Mac --with-quantum-depth=32 and --with-quantum-depth=16. Fix works on both. Many thanks. |
I am going to look very silly, but it can't be helped. The problem as described seems to have come back. I know this makes no sense. I had downloaded ImageMagick-7.1.1-15~beta20230722.tar.gz, and built it according to instructions. When it stopped working, I deleted the original build, removed my previous homebrew build to avoid any interference from that, unpacked the tar.gz file, and started again. This time Should I open another bug, or what? |
I think I have something that works. In fl32.c I took the lines around line 517...
...and moved them after the... I am not confident I know what I am doing, but SetImageExtent() was changing the number of channels from 4 to 3, which stopped us reaching |
Also in fl32.c, the writer needs to handle 4-channel files. At line 429 I added....
Again, I am not confident I know what I am doing but it seems to fix 4-channel writes. |
This is a bit more complicated than I thought. Here are some odd things in the FL32 writer. I have attached my version of fl32.c and some PNG files. I have added an extra case to the writer as noted in my last comment. This made some images readable but some others still do not read. I have added an error message which gives the truncation. This is often 75%, indicating that the FL32 header is expecting 4 channels but is only getting three. The PNG read works, the FL32 write appears to work, but the FL32 writer sometimes generates a truncated file. tRGB.png (RGB, no alpha) worked I have other test images. I have been working through a random collection after writing a book, and this throws up all sorts of strange things. But maybe this is enough to be going on with. I will be doing my regular work tomorrow, but I am going to go on fiddling with this. Cheers |
Is there a definition / specification / standard of the fl32 format? |
I know I wrote a document, but I can't find it. The best I can find is an internal help message. If I cannot find one in a few days, I will write one. Here is something quick in the meantime.... FL32 is a very simple image format. The file extension is typically .fl32 or FL32. The header is 4 32-bit integers: There are no restrictions on the values Y, X, C other than they should be greater than zero. You can make a FL32 image with more than 4 channels, but most software will only supports 1-4 channels. There are no restrictions on adding your own data after the float array. Image values are ranged from 0.0 to 1.0. Advantages:
Drawbacks:
It is handy for R&D, and moving images between applications on the same machine. I can get images from Baelight into Octave or Matlab. It is not a sensible option for providing large amounts of images to a remote client. Hope this makes sense. I have a migraine and I can hardly read what I am typing. |
The quick description doesn't specify an order of channels, eg RGBA or ARGB. If only one self-consistent package is used, this doesn't matter. But it may cause problems when one software writes files that some other software reads. |
That's right - it doesn't. The image could be BGR or YCrCb. The pixels could be in any orientation. I labelled the axes Y and X but this does not mean you have to display them like that. Image values are typically ranged from 0.0 to 1.0 rather than 0-255, but this is just a convention. Often we need to go outside this range. It won't clip. We found we often need a completely 'no frills' image format when debugging some image process. When you are already doubting your sanity, you don't want to have to think whether the OpenEXR reader has converted your NaN values correctly, or compressed the image data, or fished out four channels from a possible seven. Or the image had an attached ICC profile. Or whether your TIFF reader supports 32-bit floats. Or whatever QuickTime is up to on your machine. It does not pass multiple frames: if you want to do that you can stick frame numbers in your filename. Once you get things going, and your images are getting from A to B, then you can try other formats. Well, it is an approach that works for us. |
I have attached a zipped copy of my version of fl32.c. This writes all my test png images including ones with an alpha channel. I think your image structure may claim to have 4 channels even when the input image only had 3. I am guessing that we only have a 4th channel if alpha_trait is set to a valid value. If this passes your code review, we have a fix. |
Thanks for the problem report. We can reproduce it and will have a patch to fix it in the GIT main branch @ https://github.com/ImageMagick/ImageMagick later today. The patch will be available in the beta releases of ImageMagick @ https://imagemagick.org/archive/beta/ by sometime tomorrow. |
I ran the test on my test images. Your code is neater than mine, but I still get the truncated files on my Intel Mac. At line 407 in fl32.c I now have...
With this, it works. It seems the some RGB PNG files seem to have 4 channels when read in, but do not have an alpha_trait set. I suspect fl32.c was correct, and the actual fault is whatever caused the RGB PNG files to think they have a 4th channel. I am not sure what to do here. I could close this bug if the fault is elsewhere, and open another one with a better description. Presumably the round-trip tests passed, so this may be something peculiar to my machine (Intel MacBook Pro, Ventura 13.4). I could make my own fork and go chasing that like a grownup, instead of posting lines here. Thoughts? |
We added another patch to ensure the image is sRGB compatible and only enable 4 channels if the alpha trait indicates an alpha channel. |
Thanks. Almost there. This one looks good for RGB but I lose the alpha channel if there was one. This works for all my test images if I add the 'case 4:' line in fl32.c about line 430. If this is good for you we can close this.
This was shown up by the attached image, which came out 3-channel black as a FL32. I have also attached a quick document I wrote identifying the FL32 image format, as I seem to have lost the one that was in our product. |
One last minute thought: maybe we ought to do the same sort of thing for I haven't had to deal with mono + alpha as far as I know, but I have had an ST map in 2-channel OpenEXR format recently. |
Add options for the security policies. Follow upstream for the default. This can be changed after installation by copying the appropriate config file to etc/ImageMagick-7/policy.xml. Changes: 7.1.1-21 - 2023-10-21 Merged honor pkg-config when searching for bzip2 #6785 honor pkg-config when searching for libjpeg #6784 Add the up to date "Artifex" name to Ghostscript list #6779 Define quantum depth for PerlMagick on windows #6770 Commits beta release dc87568 time-to-live returned incorrect results when SOURCE_DATE_EPOCH set (ImageMagick/ImageMagick6#278) 3c72750 ImageMagick/ImageMagick#6775 bd0fae8 eliminate compiler error cc0553c eliminate compiler warnings 72cad57 Only use the recent names to do the Ghostscript registry lookup and search for the commercial version first. be84f21 eliminate rare small memory leak 199d056 support time to live neumonics, e.g. 2 minutes cdaebe9 remove private method GetMagickTTL() 3576c62 moderate the CPU delay 60bffdb cosmetic 23a0ef4 format time to live 0d72e02 cosmetic 47885ab correct # of seconds in month d6aa83c fix formatting time-to-live 646c6bd clarify time to live 8845a13 utilize difftime() to subtract time to live 63d39da utilize difftime() to subtract time to live 9bf4b05 convert source epoch to unsigned long 623ca54 time to live default is infinity e3e9c86 latest autoconf/automake dae5e42 latest autoconf/automake updates 207fcee assume time_t is signed df62446 largest value is MAGICK_SIZE_MAX 2d6e79f prevent possible integer overlflow 18fd355 SetMagickSecurityPolicy() permits user policies to comingle with system policies (ImageMagick/ImageMagick6#279) a9d8a08 eliminate compiler warning dd60508 eliminate compiler exception 89c0484 permit all user policies 30906ff convert -help should return a success status (ImageMagick/ImageMagick#6797) 3c559c8 -help option now returns a success status adbaabf allow user to comingle with system policies ce7a64e find minimum policy value 7d0858d find minimum policy value f81cd05 revert 8d94c78 eliminate compiler warning ecc1473 off by one exception 8eb046d correct bytes per line calculation 61f444e revert ff50d9a use PNG default for maximum chunk size 6408a69 clarify SetMagickSecurityPolicy() dcffc2d release 58d86e4 7.1.1-20 - 2023-10-08 Commits beta release 59f8951 ... a21e310 support Windows 1.0 Icon format (ImageMagick/ImageMagick#6670) bdc2c9f Code cleanup. 476a094 support GetMagickTTL() method (ImageMagick/ImageMagick#4533) 66c30fc fix time-to-live deadlock c3d651e improve time-to-live timer 4727c5e prevent integer overflow fa9c969 wrong argument type bfcdb1e respect time to live for Fx option b56a48e let cache throttle the CPU 6d9069d Fix indentation. 47af159 Added check for MaxPixelChannels. 8126bac Added support for reading meta channels when reading a jpeg2000 image. 3541957 Added jp2:assume-alpha option that will the always enable the alpha channel when the jpeg2000 image has 2 or 4 channels. 07fd761 Corrected check for single channel. 43f6ada support xmp:validate define to choose performance over security c4f9927 protect against DOS for FX do, while, for loops 2cfa8d1 Added new deflate library to the pragma lib list. ac00eb2 release 98bb1d4 7.1.1-19 - 2023-09-30 Merged Fix building with OpenCL #6743 Commits beta release 6f91d59 eliminate Coverity warnings c9e40fe max result is SIZE_MAX a0b5ea7 check for BMP file size, poc provided by Hardik Shah of Vehere (Dawn Treaders team) aa673b2 throw exception but do not close/destroy image inside ReadEmbedImage() 43003ed cosmetic 047e363 don't trust XMP profile if its not validated 7e068bb don't trust XMP profiles unless they are validated 25e3a4f eliminate compiler warnings 1c02b9c eliminate compiler warnings 627681b fix building with OpenCL (#6743) 086a539 correct exit code (ImageMagick/ImageMagick#6744) ffe9809 Fixed build. 57db683 Don't add svg:decode to the list of build in delegates when librsvg was enabled. acb653d fix compose dissolve issue (ImageMagick/ImageMagick#6738) e31a28a move check for number of colors eec0cf0 release ff509f4 release 99da019 7.1.1-18 - 2023-09-23 Commits beta release 1d60af9 eliminate static analyzer issues d26323c eliminate static analyzer issue 3b1c29d properly extract EXIF GPS fractions 66ceff0 revert typecast 2f9247f eliminate compiler warnings 839b763 eliminate compiler warning cad0080 eliminiate compiler warnings 3a04434 set windows to NULL a9ff2e4 revert ea98b2a Fixed building fourier.c on Windows with Visual Studio (#6667) 5d732c1 cosmetic 8c6cdf5 release 44b2ac8 7.1.1-17 - 2023-09-19 Commits beta release 4b5d266 remove absolute path fad55f1 validate security policy 269b573 eliminate compiler warning 5e52c7d eliminate compiler warnings ebeaa7d cosmetic f5116ea eliminate compiler warning bcd824a validate policy before we set it 354c3e4 release 44a26b1 7.1.1-16 - 2023-09-17 Merged Add JPEG-2000 support to AppImage release (Partially solve #4666) #6630 Commits beta release 922dd8d option to display build compiler cf690f5 Correct error message. 23d31cb eliminate compiler warnings 2686655 Fix possible memory leak when format doesn't support encoding (#6538). d551c5e validate the maximum meta channels in an image 72228b5 eliminate compiler warnings 7275424 read APNG losslessly 1b95976 eliminate compiler warnings 88ff143 eliminate compiler warning 5e2b42a eliminate compiler warnings 9cd23d1 eliminate compiler warnings 3e4f327 Refactored reading of the optional header. d8b7400 Write optional TGA header that seems to be required by Autodesk MotionBuilder (#6543) 8de013f limit the number of XCF layers d994be8 OpenMP advisement b826502 eliminate compiler warnings ed6b79c check the image list length 4c3e20c eliminate compiler warnings 36a7ca0 eliminate compiler warnings f0cb789 eliminate compiler warnings bc26662 Removed the size_t overload of roll and only use the ssize_t variant. 7bc8813 eliminate compiler warnings 8cc8fff Fixed memory leak in AcquireDrawingWand that occurs when image is null (#6544) e2cc296 Fixed build. 5d325ea Correct writing of the last zero byte. a6dc5c1 Initialize gamma and chromaticity with a double instead. fefcddc eliminate compiler warnings 24abe7b support new configure script option: --with-security-policy={open,limited,secure,web-safe} 8ada13b eliminate compiler warnings d33cf20 update documentation 53a44eb eliminate compiler warnings a64496f security policy configuration 8aaf660 eliminate compiler warnings 9a41b2d baseline security policies d2f093c security policy patch d2f0a47 update security policy variants dd30f68 eliminate compiler warnings 7b9b4ae eliminate compiler warnings 86bd75b ... b2834ac ... 53a3f17 eliminate compiler warnings 1c7a0f6 ... 98d4a72 Removed incorrect typecast. 76b7dfa Fixed another typecast. 931761e eliminate compiler warnings 4a3f1cb eliminate compiler warnings f5bdfdd Added missing typecasts. 0bb4b07 ... fd5261b eliminate compiler warnings 13a8403 ... e26986e eliminate compiler warnings f12d5cd eliminate compiler warnings 704a3bd Use the correct abs method instead. a844266 eliminate compiler warnings 20fbdea eliminate compiler warnings bca743b eliminate compiler warnings 4b84297 eliminate compiler warnings 78aa540 eliminate compiler warnings e53e985 Fixed windows build. a896e77 Removed NTUserTime method because we stopped supporting WindowsNT a while ago. bc70f31 Corrected type of extent. 566c63f Added missing typecast. 4b93217 eliminate compiler warnings 3349f50 eliminate compiler warnings efcc0e3 Removed broken OpenCL AddNoiseImage implementation. 85657bc Removed broken OpenCL ConvolveImage implementation. ed6c2fc Added missing comment. ac6826c Fixed the Windows build. 0d42a10 Added missing typecast. de79a6f Moved include to the correct file. 20c88c2 Only call SetPixelMetaChannels once and only when we need to. 21c3aab Use the association of the first extra sample that is an alpha channel. 58a3b36 support 64-bit channel masks 226a66f Added extra check. 9d4a494 Removed assert from header files to try to fix the build. 537a5a5 Correct previous patch to replace HDRI_ENABLE_OBSOLETE_IN_H with MAGICKCORE_CHANNEL_MASK_DEPTH. 209043d support MAGICKCORE_64BIT_CHANNEL_MASK_SUPPORT define f5abb90 add channel mask value to configure output 30b278e eliminate compiler warnings 803391d eliminate compiler warning 5254e93 fix comparison of integers of different signs issue 3ceb89e fix comparison of integers of different signs 9ee489c fix comparison of integers of different signs 2abeeac check against valid chunk sizes dd5c065 eliminate compiler warnings b4f7aa8 fix comparison of integers of different signs 557db5d fix comparison of unsigned expression < 0 54387bf fix comparison of unsigned expression f550f1a fix comparison of unsigned expression 8c4f48c fix comparison of unsigned expression cb564ee support for 64-bit channel masks 6812621 eliminate compiler warnings a184aad eliminate compiler warnings c590841 eliminate compiler warnings 8140fde eliminate compiler warnings cae92e5 more accurate PI f4eb5db check for 64-bit channel mask support 3d27129 64-bit channel mask support a2f3026 check stat() status a75951b fix comparison of integers of different signs 8e56810 fix comparison of integers of different signs dea2fc6 fix comparison of integers of different signs 239fad2 eliminate compiler warning a7c894f eliminate compiler warnings c3b30d2 fix possible loss of data issue 5bf8645 Corrected checks for defines. 3e8325b use libraw’s camera white balance adjustment as default, use dng:use-camera-wb=false to disable 80436de eliminate compiler warnings f8dcef2 fix comparison of integers of different signs b0f0b93 Added missing typecast. a3a1903 Added missing braces. 7575db0 Use if statement instead of switch. 551b0cd eliminate compiler warnings 39fbfed eliminate compiler warnings 5384a8f adjust shave thresholds 2d04ce5 restore crop transform 7a159d6 Corrected typecast. bfe52fa Corrected type casts. 695a4a5 Removed incorrect type. 510923d eliminate compiler warning 66185e4 eliminate compiler warnings 796631d fix comparison of integers of different signs issue 3ea656f eliminate compiler warnings a69c64e fix comparison of integers of different signs bc0db50 Added missing typecast. 33b968c prevent possible signed integer overflow e265602 eliminate compiler warnings 3526338 signed overflow check 8e0458d signed overflow check 71daf53 Removed switch statements that only have a default case. 77708ef WEBP now respects ping (ImageMagick/ImageMagick#6572) 8582026 egrep is deprecated 0ca2131 fix bug report address f226dcf eliminate compiler warnings bb7e9d3 eliminarte compiler warnings 3e9a05a eliminate compile warnings 2b42758 Corrected name of library. ded0dbc eliminate compiler warnings b0299c2 document each policy d2f76aa tweaks to default security policies 851cb59 validate policies @ https://imagemagick-secevaluator.doyensec.com/ daf5574 Silence warnings for when MAGICKCORE_ZERO_CONFIGURATION_SUPPORT is enabled. 07cf50a we broke exif parser, fixed aa85ee9 silence compiler warning 67e39d5 respect ping when reading DJVU images (ImageMagick/ImageMagick#6584) b114ea4 prevent signed overflow 4ffab22 properly extract EXIF multiple values 4804d61 check for 4 channel image with alpha (ImageMagick/ImageMagick#6507) cc548c7 three channels switch is now the default 43b7c06 eliminate possible integer overflow e9b0df0 Added missing typecasts. 72b9385 silence compiler warnings 4ba41bb mention the security policy validator 04607c0 set max pixel width/height to 4K d3b520e correct spelling error d39cfc7 Removed volatile keyword. 76fe200 improve policy description d947a26 Added missing comma. f44c0d8 Switch to uppercase. 1bca2e1 Minor cleanup. a4a3a03 Corrected values for meta channel bits. f8f72a0 Group policy files together. 2e529f6 latest automake/autoconf 33b7e73 fix HSL modulation when hue is 60 (ImageMagick/ImageMagick#6602) 458321d limit the number of unit test threads d031f9d Removed unused define. 4245260 Moved Debug back to the start of the feature list. dcf9558 proper check if maximum channels are exceeded 840e345 support LERC compression dbeaafc more support for 64-bit channel masks 3327dda support for 64-bit channel masks c37f121 improve security policy docs 70907a9 support 64-bit channel masks eaef272 Corrected option values. b70969e Corrected settings the define for CHANNEL_MASK_DEPTH (MAGICKCORE will already be added) cb3f98c Make sure the value is zero padded. d99cdd4 lastest autoconf/automake updates 54c41b4 Try to force the use of a C++ compiler for the PerlMagick windows build. 61d02ae account for extra bytes at end of a DICOM image (ImageMagick/ImageMagick#6566) 4cf2892 Added missing typecast. 1e30a4b Added missing typecast. 6f9eed9 comparison of integers of different signs 11d8425 remove compiler warnings afd5c67 improved C++ support 1fbce73 eliminate compiler warning 1b7b305 prevent a possible double link free 9b22513 cosmetic ffbaae2 allow MPC images c343dce improve CPU throttle check 3f204af some say BMP and TIFF images "web safe" dec92bf allow writing of JSON images 9147b17 Disable check for function that break delegate detection when building with a C++ compiler. 781d94f Removed checks for functions that we don't need. 1b96ac2 Stop using the deprecated ::set-output. 4c7f5cd remove ABI suffice symbol 84c1817 lastest autoconf/automake update 6c64544 more transparent shadow a44e75c 64-bit channel masks requires the C++ lang when evalulating autoconf macros 2f14769 prevent implode from blowing up (ImageMagick/ImageMagick#6623) e7c6c1e Added the generated policy.xml file to .gitignore 7ca7c3c Make sure we also set AC_LANG([C]) for the 32-bit channel 58fc88c latest autoconf update 56d2222 eliminate compiler error 77d50b6 Update SECURITY.md 03a92b7 Update SECURITY.md 964a761 doc update c3a8569 check for cache offset boundaries 8ca44d0 Added support for writing the alpha channel when the output format is indexed (#6629). 833d1fa Corrected return value. 4cd4def Added missing typecast. 3140f84 Patches to make sure OpenCL acceleration still works with 64-bit channel mask. 03a44aa account for boundary condition 40b280d Redefine QuantumScale to avoid double cast that results in odd issues (#6631). c6e3796 update temporary path b4e5a90 read multiline comments 7747cb8 cosmetic c4e8f80 cosmetic e632bf2 eliminate compiler exception 6307013 support emedded images 85319f7 support alpha mask fde3d56 Corrected implementation of reading the alpha mask when the compression is BI_ALPHABITFIELDS. 4d91bac We no longer need to throw an exception. ffb4f49 Add option called tga:write-footer that can be used to write the optional footer (#6543). 1eaa7d6 use virtual memory allocator 88abbe1 detect math library under C++ 58c954b Revert recent changes that break compilation with a C++ compiler on MacOS. 9962e58 latest autoconf update b682537 check for math library 6d18857 remove C++ as a prerequisite for 64-bit channel masks 6608547 revised 64-bit channel masks 50084ca Added missing typecast. 1c5fa8d Added another missing typecast. 52eff1d check for insufficient image data 0f22c43 support -x compiler option 76cd9b1 ... 3f9fcad initalize locale 17adcaa Reverted incorrect patch. 9b8ff67 Added missing includes. 2b54153 latest documentation a6f96bf check for underflow f210e55 check for underflow 3a7c11d set initial pixel width/height based in INT_MAX c65c72d eliminate compiler warnings 3829ba3 latest autoconf update 0debebb eliminate compiler warnings be9eabf eliminate compiler warnings c93f8d2 restore 3e20e19 eliminate compiler warning fd1ee51 improve exception message 07e8e9c Corrected typo. 50cbfe0 eliminate compiler warning c31c793 latest auotconf update eeede01 cosmetic 4988d7f use TIFF as our intermediate format to minimize distortion 3a17ddd support 10-bit JXR images 0053d46 support 10-bit JXR images 3f1131b improved a bit 7d8bd55 revert abf800e eliminate compiler warning b9b52c9 release 15caf7d 7.1.1-15 - 2023-07-30 Commits beta release edf7a2a Make sure the correct image properties are set before calling SetImageExtent. c18f8c5 Corrected setting the quantum_type for rgba images. be52c60 enable entitiy substitution per local parser (https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-v9p9-6pmh-r6rm) 0a87eaf The -fx option, no long applied twice (ImageMagick/ImageMagick#6518) fac094a ensure FL32 test suite properly survives a round trip (ImageMagick/ImageMagick#6507) bfc9231 Use AllChannels instead of DefaultChannels. c328565 eliminate possible integer overflow b3881dc images must be sRGB compatible to write FL32 ce38645 Update SECURITY.md f952997 check for valid bits-per-pixel 98eceff release a0a5f3d 7.1.1-14 - 2023-07-22 Commits beta release e799547 No longer download build_dependencies.sh f5d0480 support abbreviations for RTL and LTR text direction 4a8152b note y_advance, implement top-to-bottom in the future 01b0544 prep for top-to-bottom rendering of text 3911d74 alpha gradient fade now works with grayscale images (ImageMagick/ImageMagick#6495) 53f2595 check for possible IPTC overrun e284d83 release 15c472d account for hidden colormap index channel (ImageMagick/ImageMagick#6507) af228bb release 562a80c 7.1.1-13 - 2023-07-16 Merged Add Canon Raw v3 (CR3) as mime type #6450 Commits beta release 56f4789 beta release 63e2617 MetaPixelChannel is no longer used, MetaPixelChannels should be used instead. 237b8ec heap-buffer-overflow in ImageMagick <= 7.1.1-12, contributed by Hardik shah of Vehere (Dawn Treaders team) a531d28 Corrected patch for heap-buffer-overflow reported by Hardik shah of Vehere. ac1f7ca Correct type of return value for TIFFReadTile and added more checks. 6213344 Added extra for when TIFFReadEncodedStrip returns -1. 0aea35f Code style changes. 264acfc Reverted patch that broke SeparateImages. a765e3c memory library with reduced synchronization overhead 88e3964 fix proper scaling of Oklab colorspace d0f208b We now need to build xz --disable-ifunc or otherwise this will result in a segfault. e5061bc cosmetic a8de149 Simplify check. 3afd4ac Corrected checks ee1c3af Corrected declaration. ec470f3 missing cast to (int) for PixelChannel 920b778 No longer use heic_corpus. 317c022 cosmetic 8ff0561 Store additional information when dng:read-thumbnail is specified so the user knows how to read the thumbnail data. 9d79979 support -reshape option 4c104d0 check for insufficient image data in file 3af9aa1 silence unsigned overflow a1d2267 Added missing typecast. b2199fa support > 10 meta channel mnemonics ebeb132 Correct addition to resolve issue with negative interline_spacing values. ba0479f ImageMagick/ImageMagick#6476 5b3b6c2 preferred unwinding order 15efb42 Minor tweaks. d339bed Fixed reading MPO image (#6475) 2366b76 Make the MPO format explicit. 650ef27 Corrected types. 51d16a0 eliminate improbable integer overflow b939fa1 cosmetic f2bea15 Fixed memory leak. 491d1bf release d5974ce
ImageMagick version
7.1.1-13 Q16-HDRI x86_64 21276
Operating system
MacOS
Operating system, version and so on
Ventura 13.4 on Intel Mac 2.6 GHz 6-Core Intel Core i7
Description
RGB and RGBA FL32 files written by 'convert' seem fine. I have generated both, and inspected them with my own tools. I can read RGB FL32 files, but the RGBA FL32 files appear as scrambled RGB. PNG RGBA file formats read correctly on my machine. The read and wrote code seems to support from 1 to 4 channels, and it seems to make sense.
FL32 is a very simple 32-bit float format used by FilmLight for image dumps that you guys have kindly supported. Baselight 6.0 now supports alpha throughout, so the RGBA files are going to be used. I was adding an option for using ImageMagick for file reads and writes in a tool of mine, and I spotted this. I upgraded to the latest build using homebrew today.
Steps to Reproduce
convert macbeth.fl32 macbeth.png
View Macbeth.png. File is RGB. Contents looks like scrambled RGB.
If RGB.png is any 3-channel PNG file, then...
...gives a temp.png the looks like the original.
Images
macbeth.fl32.zip
The text was updated successfully, but these errors were encountered: