Evandro,
I had this same problem in an app I was developing. I allowed users to send a photo to put as their profile image.
How I resolved?
1) I put a Tlayout in the form with Center alignment and size 300 x 300 (the important thing is to leave equal width and height, forming a square)
2) Inside this Tlayout, I put a Timageviewer with Client alignment (occupying the entire Tlayout)
3) I upload the image to be treated inside Timageviewer, that way:
ImageViewer1.Bitmap.Assign(imagem);
4) I set the Timageviewer Bitmapscale property as desired (zoom into the image)
5) Finally, after the user adjusted the image as he wanted (dragging with his finger), I put a button at the bottom of the form with the following code:
var
imagem : TBitmap;
...
imagem := Layout1.MakeScreenshot;
...
This causes Delphi to create a "print" of the image the user is seeing on the screen, and saves this "print" in the image variable.
6) After that just treat the picture variable as you wish! ;)
I hope I’ve helped.
PS: After it all worked out, you can sophisticate your Timageviewer so the user can zoom in on the photo by doing "tweezers" movement with his fingers, you can put option to rotate the image, and so on.
Which component is using to load the image ?
– Junior Moreira
use a Timage @Júniormoreira
– Evandro