2015-08-13 3 views
1

У меня сейчас есть сайт, где пользователь рисует изображение из галереи. Затем он преобразуется в растровое изображение и отображается в виде изображения и отправляется на мой сервер. То, как я в настоящее время обрезаю его, - это ниже. Тем не менее, я хочу, чтобы пользователь, чтобы иметь 300x300 коробку они могут передвигаться и при нажатии клавиши загрузить его загрузит, что в пределах этого 300x300 зренияУ пользователя есть обрезка изображения

if (bitmap.getWidth() >= bitmap.getHeight()){ 

        bitmap = Bitmap.createBitmap(
          bitmap, 
          0, 
          0, 
          bitmap.getHeight(), 
          bitmap.getHeight() 
        ); 

       }else{ 

        bitmap = Bitmap.createBitmap(
          bitmap, 
          0, 
          0, 
          bitmap.getWidth(), 
          bitmap.getWidth() 
        ); 
       } 

Это мое первое приложение, так что я по-прежнему получать веревки. Спасибо за ваше время и терпение раньше времени.

ответ

0

Это примерная функция для обрезки изображения желаемого размера. Пожалуйста, проверьте его. Вы можете вызвать эту функцию performCrop() из onActivityResult().

public void performCrop() { 

     try { 
      // call the standard crop action intent (the user device may not 
      // support it) 
      Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
      // indicate image type and Uri 
      cropIntent.setDataAndType(selectedImageUri, "image/*"); 
      // set crop properties 
      cropIntent.putExtra("crop", "true"); 
      // indicate aspect of desired crop 
      cropIntent.putExtra("aspectX", 1); 
      cropIntent.putExtra("aspectY", 1); 
      // indicate output X and Y 
      cropIntent.putExtra("outputX", 300); //your desired size here 
      cropIntent.putExtra("outputY", 300); //your desired size here 
      // retrieve data on return 
      cropIntent.putExtra("return-data", true); 
      File f = createNewFile("CROP_"); 
      try { 
       f.createNewFile(); 
      } catch (IOException ex) { 

      } catch (NullPointerException ex) { 

      } 

      CropImagedUri = Uri.fromFile(f); 
      cropIntent.putExtra(MediaStore.EXTRA_OUTPUT, CropImagedUri); 

      // start the activity - we handle returning in onActivityResult 
      startActivityForResult(cropIntent, 2); 
     } catch (ActivityNotFoundException anfe) { 
      // display an error message 
      String errorMessage = "Whoops - your device doesn't support the crop action!"; 
      Toast toast = Toast 
        .makeText(this, errorMessage, Toast.LENGTH_SHORT); 
      toast.show(); 
     } 
    } 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK) { 
      if (requestCode == 1) { 
       selectedImageUri = data.getData(); 
       selectedImagePath = getPath(selectedImageUri); 
       System.out.println("Image Path : " + selectedImagePath); 
       PerformCrop(); 
       // Img.setImageURI(selectedImageUri); 
      } else if (requestCode == 2) { 
       CropImagePath = getRealPathFromURI(CropImagedUri); 
      } 
} 
Смежные вопросы