Yo lo he hecho con jCrop, es bastante sencillo, solo sigue los ejemplos que tienen en su sitio, yo por ejemplo seguí este:
http://deepliquid.com/projects/Jcrop...demo=thumbnail
Primero cree un formulario, que es el que uso para subir la imagen, ahi mismo cree cuatro inputs de tipo hidden, para que almacenen las coordenadas y cuando el usuario haga el submit del formulario pueda obtenerlas en el servidor. Un poco de código:
Código Javascript
:
Ver original//la imagen que voy a redimencionar
var $target = $('#target'),
//el TNS de preview
$preview = $('#preview-pane'),
$pcnt = $('#preview-pane .preview-container'),
$pimg = $('#preview-pane .preview-container img'),
//Necesito saber el tamaño del preview
oxsize = $('#user_image_width').val(),
oysize = $('#user_image_height').val()
xsize = $pcnt.width(),
ysize = $pcnt.height(),
//tomar los inputs de tipo hidden
x1 = $('#user_x1'),
y1 = $('#user_y1'),
width = $('#user_width'),
height = $('#user_height');
$target.Jcrop({
onChange: updatePreview, //<--- este es importante
//las configuraciones que necesites aquí
},function(){
//... revisa los ejemplos del link que te puse para e código de aquí
});
function updatePreview(c){
if (parseInt(c.w) > 0){
//aquí actualizamos el valor de las coordenadas
x1.val(Math.round(oxsize*c.x/$target.width())); //asignamos la coordenada en X
y1.val(Math.round(oxsize*c.y/$target.width()));
width.val(Math.round(oxsize*c.w/$target.width()));
height.val(Math.round(oysize*c.h/$target.height()));
}
};
Con eso es suficiente para guardar las coordenadas y enviarlas al server, ya en el servidor puedes redimencionar la imágen como gustes, yo lo hice con ruby y paperclip, con PHP debe ser fácil también.
Suerte