@pyler
In this could everywhere age, I doubt somebody sends his/her tons of vacation photos via mobile email apps. But ofc, I have no really usage data or data of most wanted features but this is my opinion.
Apparently a lot of people do that.
And apparently they "absolutely will not" change their camera settings to some reasonable image size to begin with.
Btw, Kostya, Is resizing via Java code impossible? or will it take ages?
It's not about performance, it's about memory usage.
With Android Java APIs, an image has to be fully loaded (all pixels, as if for rendering) and then you can resize by making a new image at the smaller size, again, fully in memory.
Let's see -- an 8 MPx original needs 32 megabytes of memory.
An 2048*1024 (approx.) output image needs 8 megabytes.
And then there are devices that have 12 Mpx cameras, maybe even 16 Mpx or more.
( yes, I know you can down-sample by a factor of two while loading, but that's still a lot of memory and may not give good quality )
With native code, it's possible to decompress one scan line at a time, compress one scan line at a time, and the actual resizing code only buffers a few scan lines at a time, just enough for filtering.
That makes for hugely lower memory usage, and I don't have to worry about next generation phones with I don't know, 20 Mpx or 24 Mpx cameras.