Java converting an image to an input stream WITHOUT creating a file
Have you tried writing to a ByteArrayOutputStream
and then creating a ByteArrayInputStream
from that data to read from? (Call toArray
on the ByteArrayOutputStream
and then call the constructor of ByteArrayInputStream
which will wrap that byte array.)
Typically you would use a ByteArrayOutputStream for that purpose. It acts as an in-memory stream.
ByteArrayOutputStream os = new ByteArrayOutputStream();
ImageIO.write(image,"png", os);
InputStream fis = new ByteArrayInputStream(os.toByteArray());
Be careful using BytArray streams: if the image is large, that code will fail. i have not done much applet coding, but it's possible that the temp dir is available for writing (e.g. File.createTempFile()
).