When I loaded a jpeg image just to test how would background saturation work, I found that the loaded bitmap was of low quality.
Why?
Loaded Bitmap :
{"name":"611992","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/9\/f971ae09ba823aa93534e6a40129591b.png","w":810,"h":629,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/f\/9\/f971ae09ba823aa93534e6a40129591b"}
Original Bitmap :
{"name":"611993","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/1\/312fce8349c30c06f886f11d9de7ddfb.jpg","w":4896,"h":3264,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/3\/1\/312fce8349c30c06f886f11d9de7ddfb"}
The scaling algorithm. The original is 4896x3264 pixel, your screenshot is 810x629 pixel. I assume you are drawing it with al_draw_scaled_bitmap?
In that case try calling this before loading the bitmap:
al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR);
That should make Allegro use linear scaling.
This didn't work.
al_set_new_bitmap_flags(ALLEGRO_MIN_LINEAR);
didn't do anything. Do I need to convert my image file's size?
I can't even tell the difference between the two images. :/
Allegro will load the file at the same resolution it is in.
ALLEGRO_MIN_LINEAR will make allegro use linear filtering when reducing the image size. This can look better than nearest neighbor.
Show more code.
You have to call this BEFORE loading your bitmap. 
THEN when it gets drawn it will be multisampled.
Thanks, Edgar, it worked just fine. although there is still some noise but its smoother than before.
Yes, linear scaling is not the highest quality. If this is for something like background pictures for a game you could maybe provide pre-scaled versions for smaller resolutions. At least then you'd only have to use a little bit of linear scaling - I imagine that would still look better than scaling down from the 4K resolution (not completely sure - but easy to try).