Aviary returned image size smaller than original

I use Aviary to edit the image in an Android application, but I found that the returned image is smaller than the original.

For example, I projected a large 2560x1920 image on an aviary, but the returned image is 480x640.

This is my code:

private void startFeather(Intent data) { File file = getBitmapFromResult(data); BitmapInfo bitmap = Helper.getBitmap(file, App.screenWidth, 0); toastLong("raw photo: " + bitmap.getWidth() + "x" + bitmap.getHeight()); Uri uri = Uri.fromFile(file); this.featherOutputFile = new File(App.Path.tempDir(), "111" + ".jpg"); // Create the intent needed to start feather Intent newIntent = new Intent(self, FeatherActivity.class); // set the source image uri newIntent.setData(uri); // pass the required api key ( http://developers.aviary.com/ ) String API_KEY = "aaabbbccc"; newIntent.putExtra("API_KEY", API_KEY); // pass the uri of the destination image file (optional) // This will be the same uri you will receive in the onActivityResult newIntent.putExtra("output", Uri.parse("file://" + featherOutputFile.getAbsolutePath())); // format of the destination image (optional) newIntent.putExtra("output-format", Bitmap.CompressFormat.JPEG.name()); // output format quality (optional) newIntent.putExtra("output-quality", 100); // you can force feather to display only a certain tools // newIntent.putExtra( "tools-list", new String[]{"ADJUST", "BRIGHTNESS" } ); // enable fast rendering preview newIntent.putExtra("effect-enable-fast-preview", true); // limit the image size // You can pass the current display size as max image size because after // the execution of Aviary you can save the HI-RES image so you don't need a big // image for the preview newIntent.putExtra("max-image-size", App.screenWidth); newIntent.putExtra("effect-enable-external-pack", false); newIntent.putExtra("stickers-enable-external-pack", false); newIntent.putExtra("effect-enable-borders", false); // HI-RES // You need to generate a new session id key to pass to Aviary feather // this is the key used to operate with the hi-res image ( and must be unique for every new instance of Feather ) // The session-id key must be 64 char length String mSessionId = StringUtils.getSha256(System.currentTimeMillis() + API_KEY); newIntent.putExtra("output-hires-session-id", mSessionId); // you want to hide the exit alert dialog shown when back is pressed // without saving image first // newIntent.putExtra( "hide-exit-unsave-confirmation", true ); // ..and start feather startActivityForResult(newIntent, INTENT_FEATHER); } 

Skip something?

+7
source share
1 answer
Finally, we get a solution. This is mentioned in the aviary android sample example application
 final DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics( metrics ); int max_size = Math.max( metrics.widthPixels, metrics.heightPixels ); max_size = (int) ( (float) max_size / 1.2f ); newIntent.putExtra( Constants.EXTRA_MAX_IMAGE_SIZE, max_size ); 
+1
source

All Articles