[Resolvido]Salvando preview do Jcrop

Bom dia a todos,

Galera fiz um upload de imagem e estou usando o Jcrop uma extensão de Jquery pra poder inserir fotos do mesmo tamanho em uma determinada pasta.
O problema é que eu nao estou sabendo salvar o preview que ele faz.
Abaixo tem um link com o exemplo do que estou fazendo.

http://deepliquid.com/projects/Jcrop/demos.php?demo=thumbnail

O problema agora é salvar essa imagem que ele faz do lado … o preview

Por acaso alguem teria um exemplo de como fazer isso com Struts???

abs

Galera descobri como funciona o Jcrop.
E o seguinte … aquela imagem preview qua aparece nao é nada mais nada menos que a mesma imagem, porem sao feitos calculos de escala para deixar a imagem do tamanho que se preferir. Entao a saida para salvar o preview é.

Recuperar as escalas feitas pelo Jcrop no momento de execução

function showPreview(coords){
	if (parseInt(coords.w) > 0){
		var rx = 200 / coords.w;
		var ry = 200 / coords.h;
		var w = $("#cropbox").attr('width');
		var h = $("#cropbox").attr('height');
		jQuery('#preview').css({
			width: Math.round(rx * w) + 'px',
			height: Math.round(ry * h) + 'px',
			marginLeft: '-' + Math.round(rx * coords.x) + 'px',
			marginTop: '-' + Math.round(ry * coords.y) + 'px'
		});
		$('#x').val(coords.x);
		$('#x2').val(coords.x2);
		$('#y2').val(coords.y2);
		$('#y').val(coords.y);		
		$('#w').val(coords.w);
		$('#h').val(coords.h);		
	}
}

Mandar essas coordenadas pro action

function salvaPreview(){
	$.ajax({type:'POST',
		url: 'preview.do',
		data:{ img: $("#nomeFoto").val(), x: $('#x').val(), y: $('#y').val(), w: $('#w').val(), h: $('#h').val()},
		success: function (text){
			alert("Yataaa!!");
		}
		});
}

Nesta camada tratar a imagem que foi feita upload que provavelmente deve estar em um arquivo temporario e recortar a imagem usando as coordenadas passadas pelo Jcrop.
Nesta parte tentei fazer de duas maneiras porem as duas sem sucesso.

public class PreviewAction extends Action {

	public ActionForward execute(ActionMapping map, ActionForm form,
			HttpServletRequest req, HttpServletResponse res) throws Exception {
		PreviewForm arquivoForm = (PreviewForm) form;
		String img = arquivoForm.getImg();

		int x = Integer.parseInt(arquivoForm.getX());
		int y = Integer.parseInt(arquivoForm.getY());
		int w = Integer.parseInt(arquivoForm.getW());
		int h = Integer.parseInt(arquivoForm.getH());

		// local do tmp
		String temp = getServlet().getServletContext().getRealPath("/")
				+ "fotosTMP";
		// local definitivo
		String definitivo = getServlet().getServletContext().getRealPath("/")
				+ "fotosUsers";
		String[] extensao = { ".tiff", ".jpg", ".pjpeg", ".jpeg", ".gif",
				".png", ".x-png" };
		File arq = new File(temp + "/" + img + ".jpg");
		int i = 0;
		while (!arq.exists()) {
			arq = new File(temp + "/" + img + extensao[i]);
			i++;
		}
		try {
			BufferedImage image = ImageIO.read(arq);
 //aqui estou colocando os parametros do Jcrop 1 tentativa
			BufferedImage new_img = new BufferedImage(w, h,
					BufferedImage.TYPE_INT_RGB);
			Graphics2D g = new_img.createGraphics();
			g.drawImage(image, x, y, w, h, null);

			ImageIO.write(new_img, extensao[i].substring(1, extensao[i]
					.length()), new File(definitivo));
/*
 			2ª tentativa	
			File fileToCreate = new File(definitivo, img + extensao);
			FileOutputStream fileOutStream = new FileOutputStream(fileToCreate);
			fileOutStream.write(image.hashCode());
			fileOutStream.flush();
			fileOutStream.close();
			
			
*/

		} catch (Exception e) {
			System.err.println(e);
			System.out.println(e);
		}

		return null;
	}
}

na primeira tentativa ele da erro de acesso.

java.io.FileNotFoundException: C:\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\IU\fotosUsers (Acesso negado)

na segunda ele grava o arquivo porem sem extensão … eu nao sei o que esta acontecendo …
Olhem como ele grava, sendo que “55MKE07071951GAA” é o nome da imagem

55MKE07071951GAA[Ljava.lang.String;@13abf3d

Alguem pode me ajudar??

Abs