Why is that? Integer mismatch when converting? And is there any way to avoid it? I want to export image exactly as I see them, for downstream use.
You are converting from 16-bit to RGB, so you should expect a numerical difference. Why don’t you save the image as 16-bit?
If I save it as a raw 16 bit image, other applications read the image as black, because the signal is in the range 70 to 130, and the rest of the values up to 65k are empty.
If you need to preserve the original values, you have to save the image as 16-bit. Then, when displaying it on any software you will have to adjust the contrast see the visible range of pixels better.
If your images are in the range of 70-130 greyscale value, capturing and saving in 16bit is a waste of space. Capture your images as 8bit (which has a maximum of 255). Or convert the 16bit into 8 bit “without rescaling”, so the values are preserved. The no-rescaling is set in the Edit>Options>Conversions section.
It gets reset when you restart IJ.
Since nobody addressed your original question… I tried to reproduce, but could not do so on my machine. I opened the M51 Galaxy sample image, adjusted the brightness/contrast, took a screen capture on OS X using shift+cmd+F4, space, then clicking on the image window. Then dragged the screenshot PNG back onto ImageJ. And the image looks exactly the same.
I also tried converting my contrast-stretched m51 Galaxy image to RGB, then saving that to PNG, and then reopening it, and again, no change in appearance whatsoever (at least to my eye).
What procedure did you use to create your right-hand image?