2013-11-23 5 views
-1

Я отредактировал мое сообщение, потому что знаю, что было невозможно изменить размер изображения сразу после его захвата. поэтому я пытаюсь изменить размер изображения после того, как я обрезал его. Я уже внедрил некоторый код отсюда http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap, но он по-прежнему не изменяет размер изображения. Вот мой код:Изменить размер изображения, снятого с камеры андроида

private void splitImage(File[]listFile, File mediaStorage,int[] chunkNumbers) throws IOException 
{ 
    int rows ,cols; 
    String[] namaFile = new String[listFile.length]; 
    int chunk ; 
    File nf = null; 
    ArrayList<Bitmap> hasilSplit; 
    for(int i=0;i<listFile.length;i++) 
    { 
     int index=1; 
     namaFile[i] = listFile[i].getName(); 
     String nama = namaFile[i].split("\\.")[0]; 
     BitmapFactory.Options options = new BitmapFactory.Options(); 
     options.inJustDecodeBounds = true; 
     ResizeGambar rg = new ResizeGambar(); 
     options.inSampleSize = rg.hitungInSampleSize(options); 
     //options.inJustDecodeBounds = false; 

     Bitmap gambarOri = BitmapFactory.decodeFile(listFile[i].getAbsolutePath(),options); 
     Bitmap scaledOri = Bitmap.createScaledBitmap(gambarOri, gambarOri.getWidth(), gambarOri.getHeight(), true); 
     //int chunk = (int)(gambarOri.getWidth() * gambarOri.getHeight()/100); 
     rows =(int) gambarOri.getWidth()/10; 
     cols =(int) gambarOri.getHeight()/10; 
     chunk = rows * cols; 
     chunkNumbers[i] = chunk; 
     System.out.println("Size of ChunkNumbers: " + chunkNumbers[i]); 
     hasilSplit = new ArrayList<Bitmap>(chunk); 
     int count = 0; 
     //koordinat awal chunk 
     for(int x=0;x<rows;x++) 
     { 
      for(int y=0;y<cols;y++) 
      { 
       hasilSplit.add(Bitmap.createBitmap(scaledOri,10*x,10*y,10,10)); 
       nf = new File(mediaStorage.getPath()+File.separator+nama+index+".jpg"); 
       index++; 
       FileOutputStream fo = new FileOutputStream(nf); 
       hasilSplit.get(count).compress(Bitmap.CompressFormat.JPEG, 50, fo); 
       count++; 
       fo.flush(); 
       fo.close(); 
      } 
     } 
     index= 1; 
    } 
} 

это ResizeGambar.java

package com.example.cobaandroid; 
import android.graphics.BitmapFactory; 
public class ResizeGambar { 

final int reqWidth = 50; 
final int reqHeight=101; 

public ResizeGambar() 
{ 

} 

public int hitungInSampleSize(BitmapFactory.Options options) 
{ 
    final int height = options.outHeight; 
    final int width = options.outWidth; 
    int inSampleSize = 1; 
    if(height > reqHeight || width > reqWidth) 
    { 
     final int halfHeight = height/2; 
     final int halfWidth = width/2; 
     while((halfWidth/inSampleSize) > reqWidth && (halfHeight/inSampleSize) > reqHeight) 
     { 
      inSampleSize *=2; 
     } 
    } 
    return inSampleSize; 
} 

}

пожалуйста кто-нибудь передать мне свою помощь :(

+0

2-й поиск в google http://stackoverflow.com/questions/10773511/how-to-resize-an-image-i-picked-from-the-gallery-in-android – Emmanuel

+0

спасибо за ваш ответ @Emmanuel , проблема в том, что она отличается от ссылки выше, потому что я хочу изменить размер после захвата и до этого сохранить, я не выбираю из галереи .. какая-нибудь помощь? – bohr

+0

Затем вам нужно реализовать свою собственную камеру. – Emmanuel

ответ

1

Можно ли изменить размер изображение сразу после того, как я его захватил до сохранения на SDCard?

Нет, потому что вы не тот, кто фотографирует. Другое приложение, в зависимости от того, какой из них обрабатывает ваш запрос ACTION_IMAGE_CAPTURE.

+0

спасибо, так как я могу изменить размер изображения после того, как я его обрезал? я уже реализован с http://developer.android.com/training/displaying-bitmaps/load-bitmap.html#load-bitmap, но он все еще не работает – bohr

+0

@ user2997327: «он все еще не работает» не является полезным описанием твоя проблема. Пожалуйста, начните новый вопрос StackOverflow, где вы разместите свой собственный код и подробно объясните, что означает «он все еще не работает». – CommonsWare

+0

Я уже редактирую свое сообщение @CommonsWare – bohr

0

Вот a link для некоторой схожей проблемы и ее решения. Проверьте это!

+0

Обратите внимание, что [ссылки только ответов] (http://meta.stackoverflow.com/tags/link-only-answers/info) обескуражены, SO ответы должны быть конечной точкой поиска решения (vs. еще одна остановка ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra

Смежные вопросы