gBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out); returns the compressed file, i hava also used countless times
(Emphasis added)
No, it does not. Bitmap.compress() returns a boolean, which is either true or false. A function returning something is very different to a function doing something, which is what you seem to be talking about.
This tells me you need to look into checking what functions return. Once this concept is clear, check the documentation for the functions you use, and see if the functions return what you expect them to.
I'd still suggest looking more closely at the 2 functions I mentioned to start with. Do they return what you would expect? Check and verify this properly, not by deducing or guessing or feeling.