I'll assume you know the basics of how to call functions with JNI. It's not that complicated, although it can be a pain in the ass.
If you want to get it done quickly, just write the PNG to a temp file, pass the file name up through JNI and load it using ImageIO.
If you want to get more sophisticated, and avoid needing a file path, you can use ImageIO.read(InputStream) on a ByteArrayInputStream that wraps a byte array you pass in through JNI. You can call NewByteArray() from C and then use SetByteArrayRegion to set the data.
Finally, you might consider using HTTP to transfer the data, Apache has a set of components you can use that include a little web server, you can POST from your C code to Java.