I'm testing different ways to store a jpg file in java and using a ByteArrayInputStream from a buffered image always results in a smaller file size. Is there anyway around this?
So for the whole picture, I'm currently trying to write a client-server image storing program(with eventual editing capabilities, think adobe lightroom). Uploading to the server from the client is no problem, just use Files.readAllBytes(currentFile.toPath()); and vice-versa when downloading to the client from the server, since it's being stored as a file.
The problem is what to do when I want to upload the same image I received(Assuming the image is edited and wanted to be reuploaded to server). I don't have a file created from it so I can't use the readAllBytes functions, they're only stored as an Image Object or BufferedImage. When I write that to a ByteArrayInputStream and get the size of the byte array to send back to the server, it's always smaller than the originals.
As a last resort I can make this into an export option so you have to download an image from the server onto the computer before editing, but it would make workflow less efficient.