Я предполагаю, что вы знаете основы того, как вызывать функции с помощью JNI. Это не так сложно, хотя это может быть боль в заднице.
Если вы хотите сделать это быстро, просто запишите PNG во временный файл, передайте имя файла через JNI и загрузите его с помощью ImageIO.
Если вы хотите стать более сложным и избежать необходимости пути к файлу, вы можете использовать ImageIO.read (InputStream) для ByteArrayInputStream , который оборачивает передаваемый вами байтовый массив через JNI. Вы можете вызвать NewByteArray () из C и затем использовать SetByteArrayRegion для установки данных.
Наконец, вы можете рассмотреть возможность использования HTTP для передачи данных, Apache имеет набор компонентов, которые вы можете использовать , включая небольшой веб-сервер, вы можете POST из своего кода C в Java.