如何在android中调整照片大小?

时间:2014-10-27 14:20:19

标签: android image resize

我实际上是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);

谢谢!

1 个答案:

答案 0 :(得分: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();
        }
        }