2012-11-20 14 views
7

Android uygulamasında görüntüyü düzenlemek için Aviary kullanıyorum, ancak geri dönen görüntünün orijinalinden daha küçük olduğunu buldum. Örneğin, büyük bir görüntüyü 2560x1920 seriperiye yapıştırıyorum, ancak dönen görüntü 480x640'tır. Aviary tarafından döndürülen görüntünün boyutu, orijinal uygulamadan daha küçük

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); 
} 

şey kaçırdım mı:

Bu benim kodudur?

+0

Yüksek çözünürlüklü çıktı kullandınız mı? Öte yandan, boyutu yalnızca cihazın hafızasına bağlı olan daha küçük önizleme döndürülür. –

+0

Yardımcı olabilir miyim? Ama diğer lib kullanmanız gerekiyor. –

+0

@Freewind Bunu sorduğum için üzgünüm, çünkü bu soru iki yıl sonra bile cevap alamadı .. Herhangi bir çözüm buldunuz mu .. Şimdi aynı sorunla karşı karşıyayım – Praveen

cevap

1

Sonunda çözümü aldık. Aviary android örnek uygulamasında belirtilmiştir

İlgili konular