2017-12-27 37 views
-5

사용자가 이미지를 추가 할 위치에 하나의 코드를 구현하려고합니다. 크기가 더 크면 자동으로 크기가 조정되므로 이미지의 크기는 3MB 미만이어야합니다. 이 질문은 반복적 인 질문이지만 내 코드가 제대로 작동하지 않는다는 것을 알고 있습니다. 다음은 Bitmap.createScaledBitmap이 이미지의 크기를 조정하지 못합니다.

Uri selectedImage = data.getData(); 
      String[] filePath = {MediaStore.Images.Media.DATA}; 
      Cursor c = getContentResolver().query(selectedImage, filePath, null, null, null); 
      c.moveToFirst(); 
      int columnIndex = c.getColumnIndex(filePath[0]); 
      String picturePath = c.getString(columnIndex); 
      c.close(); 
      bitmap2 = (BitmapFactory.decodeFile(picturePath)); 
      Log.e("path of image 4", picturePath + ""); 
      String str = String.valueOf(bitmap2.getRowBytes() * bitmap2.getHeight()); 
      Log.e("lengh of bitmap.......", str); 
      // Log.e("lengh of bitmap", String.valueOf(bitmap2.getAllocationByteCount())); 

      ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
      bitmap2.compress(Bitmap.CompressFormat.JPEG, 100, bos); 
      byte[] bitmapdata = bos.toByteArray(); 

      Bitmap resized = Bitmap.createScaledBitmap(bitmap2, 200, 300, true); 

      imageView2.setImageBitmap(resized); 
      setImage("image2"); 

I have tried this link

And this

+0

중복 질문을 사용할 수 있습니다 [Android에서 이미지 크기를 조정하는 방법] (https://stackoverflow.com/questions/10413659/how-to-resize-image-in-android) –

+3

가능한 중복 :

resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true); 

또한이 방법을

public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { int width = bm.getWidth(); int height = bm.getHeight(); float scaleWidth = ((float) newWidth)/width; float scaleHeight = ((float) newHeight)/height; // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the bit map matrix.postScale(scaleWidth, scaleHeight); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); return resizedBitmap; } 
ADM

+0

@TI가 이것이 중복 된 질문이라는 것을 알고 있기 때문에 나는이 질문에 "이 질문이 반복됩니다 "질문을 확인하십시오 – user6734679

답변

3

HI 내 이해에 따라, 당신은이 작업을 수행 할 수 있으며, 또한 This Link

Bitmap yourBitmap; 
Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); 

또는을 따를 수 있습니다 내 코드입니다 :

0 의 https://stackoverflow.com/questions/10413659/how-to-resize-image-in-android
+0

감사합니다. 내 코드를 다시 확인하십시오. – user6734679

+0

내 대답을 업데이트했습니다. 내 대답이 –

+0

인 방법을 사용할 수 있습니다. 위 코드를 사용할 때 정확하지 않습니다. – user6734679