2014-10-27 2 views
1

Я действительно новичок в андроиде, но мне удалось сделать снимок с моим приложением, и вот как я делаю снимок и сохраняю его ... Проблема в том, что мне нужно изменить его размер до сохранения его на телефоне. Но я не могу понять, как к этому .. Я искал свою проблему, но единственное, что я нашел, это растровые изображения, и это не мой случай, я думаю ..Как изменить размер фотографии в android?

Вот код, который я используя для этого снимок:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),"GUASTO" + System.currentTimeMillis() + ".jpg");/

intent.putExtra(MediaStore.EXTRA_OUTPUT, photoPath); 

startActivityForResult(intent, SCATTA_FOTO); 

спасибо!

+0

http://stackoverflow.com/questions/10413659/how-to-resize-image-in -android – marcel

ответ

0
public static int PIC_CROP=81; 

    Intent cropIntent = new Intent("com.android.camera.action.CROP"); 
       //indicate image type and Uri 
      cropIntent.setDataAndType(ImageUri, "image/*"); 
       //set crop properties 
       //indicate aspect of desired crop 
      cropIntent.putExtra("aspectX", 1); 
      cropIntent.putExtra("aspectY", 1); 
       //indicate output X and Y 
      cropIntent.putExtra("outputX", 640); 
      cropIntent.putExtra("outputY", 640); 
       //retrieve data on return 
      cropIntent.putExtra("return-data", true); 
       //start the activity - we handle returning in onActivityResult 
      startActivityForResult(cropIntent, PIC_CROP); 

и в onActivityResult() метод

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if(requestCode==PIC_CROP) 
     { 
      if(resultCode==RESULT_OK) 
      { 
      Bundle extras = data.getExtras(); 
       if (extras != null) {    
        Bitmap bmp = extras.getParcelable("data"); 
        saveCropPhoto(bmp); 
       } 
       Toast.makeText(getApplicationContext(), "picture cropped",Toast.LENGTH_SHORT).show(); 
      } 
     } 

     } 

saveCropPhoto()

public void saveCropPhoto(Bitmap bmp) 
     { 
     Toast.makeText(getApplicationContext(), "in save",Toast.LENGTH_SHORT).show(); 
     String dir = Environment.getExternalStorageDirectory().toString() + "/folderName/"; 
     File newdir = new File(dir); 
     newdir.mkdirs(); 
     FileOutputStream out = null; 
     Calendar c = Calendar.getInstance(); 
     String date = fromInt(c.get(Calendar.MONTH)) 
        + fromInt(c.get(Calendar.DAY_OF_MONTH)) 
        + fromInt(c.get(Calendar.YEAR)) 
        + fromInt(c.get(Calendar.HOUR_OF_DAY)) 
        + fromInt(c.get(Calendar.MINUTE)) 
        + fromInt(c.get(Calendar.SECOND)); 
     File imageFileName = new File(newdir, "crop_"+date.toString() + ".jpg"); 
     try 
     { 
     out = new FileOutputStream(imageFileName); 
     bmp.compress(Bitmap.CompressFormat.JPEG, 100, out); 
     out.flush(); 
     out.close(); 
     out = null; 
     if(tempFile.exists()) 
     tempFile.delete(); 
     } catch (Exception e) 
     { 
     e.printStackTrace(); 
     } 
     } 
Смежные вопросы