As I stated before, the "write PNG file.vi" and "LV Image to PNG Data.vi" VI's are not supported in RT. I bit the bullet and wrote a VI using the OpenG library ZLIB Deflate VI and the MECC CRC32 vi. Interestingly, the OpenG external library deploys and runs on the RTOS. The ZLIB CRC32 vi produced a CRC value incompatible with the PNG spec for some reason. I was careful to init the crc input register will all 1's per the PNG spec, but the value produced differed from that produced by the "write PNG file" VI, so I switched to the MECC CRC32, which works. Perhap someone who has the time can figure out why the ZLIB CRC32 vi is not suitable for the PNG spec. The IMG_write_PNG.vi VI only supports 24-bit images. The array reshaping and insertion of a 0 column was used to insert the Filter Type byte at the beginning of each scan line. Here is the code:
Here is a slightly updated version with some added U32 converts for the IHDR width and height (per the PNG spec) and a note about the filter type bytes: