[Resolvido] Android - Cortar imagem da galeria

Galera,
Acompanho o fórum há bastante tempo e aqui já tive diversas dúvidas esclarecidas, porém desta vez não encontrei nada (nem aqui nem na internet) que se encaixe com o que estou procurando. Gostaria de saber se é possível cortar livremente um retângulo de uma imagem selecionada da galeria do Android. Olhando na internet, vi alguns exemplos utilizando o com.android.camera.action.CROP, no entanto estes exemplos apenas possibilitam o corte quadrado, da mesma forma que é feito quando se quer colocar um papel de parede no Android. Eu preciso que o ajuste nas laterais e nas verticais sejam independentes um do outro, quando se seleciona “cortar” (ou similares, esta opção depende da versão do Android) na edição de imagens da galeria.

Segue o trecho onde é feito o CROP:

private void doCrop()
{
		final ArrayList<CropOption> cropOptions = new ArrayList<CropOption>();

		Intent intent = new Intent("com.android.camera.action.CROP");
		intent.setType("image/*");

		List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 0);

		int size = list.size();

		if (size == 0)
		{
			Toast.makeText(this, "Can not find image crop app", Toast.LENGTH_SHORT).show();

			return;
		}
		else
		{
			intent.setData(mImageCaptureUri);

			intent.putExtra("outputX", 200);
			intent.putExtra("outputY", 200);
			intent.putExtra("aspectX", 100);
			intent.putExtra("aspectY", 100);
			intent.putExtra("scale", true);
			intent.putExtra("return-data", true);

			if (size == 1)
			{
				Intent i = new Intent(intent);
			
				ResolveInfo res = list.get(0);

				i.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

				this.startActivityForResult(i, Constantes.CROP_FROM_CAMERA);
			}
			else
			{
				for (ResolveInfo res : list)
				{
					final CropOption co = new CropOption();

					co.title = getPackageManager().getApplicationLabel(res.activityInfo.applicationInfo);
					co.icon = getPackageManager().getApplicationIcon(res.activityInfo.applicationInfo);
					co.appIntent = new Intent(intent);

					co.appIntent.setComponent(new ComponentName(res.activityInfo.packageName, res.activityInfo.name));

					cropOptions.add(co);
				}

				CropOptionAdapter adapter = new CropOptionAdapter(getApplicationContext(), cropOptions);

				AlertDialog.Builder builder = new AlertDialog.Builder(this);
				builder.setTitle("Choose Crop App");
				builder.setAdapter(adapter, new DialogInterface.OnClickListener()
				{
					public void onClick(DialogInterface dialog, int item)
					{
						startActivityForResult(cropOptions.get(item).appIntent, Constantes.CROP_FROM_CAMERA);
					}
				});

				builder.setOnCancelListener(new DialogInterface.OnCancelListener()
				{
					//@Override
					public void onCancel(DialogInterface dialog)
					{

						if (mImageCaptureUri != null)
						{
							getContentResolver().delete(mImageCaptureUri, null, null);
							mImageCaptureUri = null;
						}
					}
				});

				AlertDialog alert = builder.create();

				alert.show();
			}
		}
	}

Acredito que seja alguma configuração simples, provavelmente ajustada por .putExtra, porém, sou iniciante em Android e não conheço o framework. Alguém tem alguma solução?

Problema resolvido. Como havia dito, é uma configuração simples: apenas remova os seguintes parâmetros:

intent.putExtra("outputX", 200);   
intent.putExtra("outputY", 200);   
intent.putExtra("aspectX", 100);   
intent.putExtra("aspectY", 100);   

os parâmetros outputX e outputY são setados quando se quer definir um tamanho máximo para o bitmap de saída do recorte. Os parâmetros aspectX e aspectY definem o formato da área de recorte (e a sua proporção de crescimento/redução). Retirar esses dois últimos parâmetros faz com que o Android deixe a seleção da área de recorte livre.