You are too hard on yourself, my dear! The outfit is not that bad, and I am positive that the camera angle is simply doing you no favors. Of course you are going to look like you have short lower body if the camera is high and pointed down. Have your photographer crouch down and shoot more levelly.
Otherwise, I do think two tweaks would make a difference:
1) low-vamp shoes (or one with a heel). This is a nice-to-have not a necessity. Outfit looks fine with the sandals you've got, but if you want a longer leg line, low-vamp will give it to you.
2) sleeveless shirt. You have slightly broad shoulders compared to your hips (as do I - we are built very similarly). Sleeveless is going to be a much more flattering look for you, as it will give the illusion of more balanced hips/shoulders. Trust me on this one: I have always hated sleeveless because I think my arms are chunky, but I have realized over time and with experimenting that this rule of thumb is very true: sleeveless (for summer) is far more flattering. (unfortunately it's hard to find sleeveless that isn't too strappy ... but that's another discussion!)
I also think maybe this wrap shirt is a bit too big? It looks a bit loose at the bra band level. You want it to nip in nicely here. As for mid-section disguising, if the size down seems too tight across the tummy, scrunch it. The scrunched fabric will hide away lumps and bulges. I think you would look awesome in the Sweat Pea wrap shirts - have you tried those?
But these are all just little tweaks! You look fine as is.