99 Я создаю приложение и хочу настроить просмотр галереи. Я не хочу, чтобы изображения в галерее были полноразмерными. Как изменить размер изображений в Android? android bitmap Джигнеш Ансодария источник 6 Вы хотите уменьшить размер изображения или просто хотите уменьшить размер? MAC Ответы: 186 Пытаться: Bitmap yourBitmap; Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); или: resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true); хорошо источник 30 public Bitmap resizeBitmap(String photoPath, int targetW, int targetH) { BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(photoPath, bmOptions); int photoW = bmOptions.outWidth; int photoH = bmOptions.outHeight; int scaleFactor = 1; if ((targetW > 0) || (targetH > 0)) { scaleFactor = Math.min(photoW/targetW, photoH/targetH); } bmOptions.inJustDecodeBounds = false; bmOptions.inSampleSize = scaleFactor; bmOptions.inPurgeable = true; //Deprecated API 21 return BitmapFactory.decodeFile(photoPath, bmOptions); } Эрнальдо Гонсалес источник 8 Захватите изображение и измените его размер. Bitmap image2 = (Bitmap) data.getExtras().get("data"); img.setImageBitmap(image2); String incident_ID = IncidentFormActivity.incident_id; imagepath="/sdcard/RDMS/"+incident_ID+ x + ".PNG"; File file = new File(imagepath); try { double xFactor = 0; double width = Double.valueOf(image2.getWidth()); Log.v("WIDTH", String.valueOf(width)); double height = Double.valueOf(image2.getHeight()); Log.v("height", String.valueOf(height)); if(width>height){ xFactor = 841/width; } else{ xFactor = 595/width; } Log.v("Nheight", String.valueOf(width*xFactor)); Log.v("Nweight", String.valueOf(height*xFactor)); int Nheight = (int) ((xFactor*height)); int NWidth =(int) (xFactor * width) ; bm = Bitmap.createScaledBitmap( image2,NWidth, Nheight, true); file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bm.compress(CompressFormat.PNG, 100, ostream); ostream.close(); Джей Маю источник 6 Вы можете использовать Matrix для изменения размера изображения камеры .... BitmapFactory.Options options=new BitmapFactory.Options(); InputStream is = getContentResolver().openInputStream(currImageURI); bm = BitmapFactory.decodeStream(is,null,options); int Height = bm.getHeight(); int Width = bm.getWidth(); int newHeight = 300; int newWidth = 300; float scaleWidth = ((float) newWidth) / Width; float scaleHeight = ((float) newHeight) / Height; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0,Width, Height, matrix, true); BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); N.Droid источник 5 bm = Bitmap.createScaledBitmap(bitmapSource, width, height, true); :) Misca источник 5 // фотография - это растровое изображение Bitmap btm00 = Utils.getResizedBitmap(photo, 200, 200); setimage.setImageBitmap(btm00); And in Utils class : public static 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; 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; } ritesh4326 источник 4 BitmapFactory.Options options=new BitmapFactory.Options(); options.inSampleSize=2; //try to decrease decoded image Bitmap bitmap=BitmapFactory.decodeStream(is, null, options); bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos); //compressed bitmap to file пустота источник 4 resized = Bitmap.createScaledBitmap(yourImageBitmap,(int)(yourImageBitmap.getWidth()*0.9), (int)(yourBitmap.getHeight()*0.9), true); Вайшали Сутария источник 2 Ниже приводится функция изменения размера растрового изображения с сохранением того же соотношения сторон. Здесь я также написал подробное сообщение в блоге по этой теме, чтобы объяснить этот метод. Измените размер растрового изображения, сохранив одинаковое соотношение сторон . public static Bitmap resizeBitmap(Bitmap source, int maxLength) { try { if (source.getHeight() >= source.getWidth()) { int targetHeight = maxLength; if (source.getHeight() <= targetHeight) { // if image already smaller than the required height return source; } double aspectRatio = (double) source.getWidth() / (double) source.getHeight(); int targetWidth = (int) (targetHeight * aspectRatio); Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false); if (result != source) { } return result; } else { int targetWidth = maxLength; if (source.getWidth() <= targetWidth) { // if image already smaller than the required height return source; } double aspectRatio = ((double) source.getHeight()) / ((double) source.getWidth()); int targetHeight = (int) (targetWidth * aspectRatio); Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false); if (result != source) { } return result; } } catch (Exception e) { return source; } } Асад Али Чоудри источник 0 BitmapFactory.Options options=new BitmapFactory.Options(); options.inSampleSize = 10; FixBitmap = BitmapFactory.decodeFile(ImagePath, options); //FixBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gv); byteArrayOutputStream = new ByteArrayOutputStream(); FixBitmap.compress(Bitmap.CompressFormat.JPEG, 80, byteArrayOutputStream); //compress to 50% of original image quality byteArray = byteArrayOutputStream.toByteArray(); ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT); Алобайди источник
186 Пытаться: Bitmap yourBitmap; Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); или: resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true); хорошо источник
30 public Bitmap resizeBitmap(String photoPath, int targetW, int targetH) { BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inJustDecodeBounds = true; BitmapFactory.decodeFile(photoPath, bmOptions); int photoW = bmOptions.outWidth; int photoH = bmOptions.outHeight; int scaleFactor = 1; if ((targetW > 0) || (targetH > 0)) { scaleFactor = Math.min(photoW/targetW, photoH/targetH); } bmOptions.inJustDecodeBounds = false; bmOptions.inSampleSize = scaleFactor; bmOptions.inPurgeable = true; //Deprecated API 21 return BitmapFactory.decodeFile(photoPath, bmOptions); } Эрнальдо Гонсалес источник
8 Захватите изображение и измените его размер. Bitmap image2 = (Bitmap) data.getExtras().get("data"); img.setImageBitmap(image2); String incident_ID = IncidentFormActivity.incident_id; imagepath="/sdcard/RDMS/"+incident_ID+ x + ".PNG"; File file = new File(imagepath); try { double xFactor = 0; double width = Double.valueOf(image2.getWidth()); Log.v("WIDTH", String.valueOf(width)); double height = Double.valueOf(image2.getHeight()); Log.v("height", String.valueOf(height)); if(width>height){ xFactor = 841/width; } else{ xFactor = 595/width; } Log.v("Nheight", String.valueOf(width*xFactor)); Log.v("Nweight", String.valueOf(height*xFactor)); int Nheight = (int) ((xFactor*height)); int NWidth =(int) (xFactor * width) ; bm = Bitmap.createScaledBitmap( image2,NWidth, Nheight, true); file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bm.compress(CompressFormat.PNG, 100, ostream); ostream.close(); Джей Маю источник
6 Вы можете использовать Matrix для изменения размера изображения камеры .... BitmapFactory.Options options=new BitmapFactory.Options(); InputStream is = getContentResolver().openInputStream(currImageURI); bm = BitmapFactory.decodeStream(is,null,options); int Height = bm.getHeight(); int Width = bm.getWidth(); int newHeight = 300; int newWidth = 300; float scaleWidth = ((float) newWidth) / Width; float scaleHeight = ((float) newHeight) / Height; Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0,Width, Height, matrix, true); BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); N.Droid источник
5 // фотография - это растровое изображение Bitmap btm00 = Utils.getResizedBitmap(photo, 200, 200); setimage.setImageBitmap(btm00); And in Utils class : public static 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; 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; } ritesh4326 источник
4 BitmapFactory.Options options=new BitmapFactory.Options(); options.inSampleSize=2; //try to decrease decoded image Bitmap bitmap=BitmapFactory.decodeStream(is, null, options); bitmap.compress(Bitmap.CompressFormat.JPEG, 70, fos); //compressed bitmap to file пустота источник
4 resized = Bitmap.createScaledBitmap(yourImageBitmap,(int)(yourImageBitmap.getWidth()*0.9), (int)(yourBitmap.getHeight()*0.9), true); Вайшали Сутария источник
2 Ниже приводится функция изменения размера растрового изображения с сохранением того же соотношения сторон. Здесь я также написал подробное сообщение в блоге по этой теме, чтобы объяснить этот метод. Измените размер растрового изображения, сохранив одинаковое соотношение сторон . public static Bitmap resizeBitmap(Bitmap source, int maxLength) { try { if (source.getHeight() >= source.getWidth()) { int targetHeight = maxLength; if (source.getHeight() <= targetHeight) { // if image already smaller than the required height return source; } double aspectRatio = (double) source.getWidth() / (double) source.getHeight(); int targetWidth = (int) (targetHeight * aspectRatio); Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false); if (result != source) { } return result; } else { int targetWidth = maxLength; if (source.getWidth() <= targetWidth) { // if image already smaller than the required height return source; } double aspectRatio = ((double) source.getHeight()) / ((double) source.getWidth()); int targetHeight = (int) (targetWidth * aspectRatio); Bitmap result = Bitmap.createScaledBitmap(source, targetWidth, targetHeight, false); if (result != source) { } return result; } } catch (Exception e) { return source; } } Асад Али Чоудри источник
0 BitmapFactory.Options options=new BitmapFactory.Options(); options.inSampleSize = 10; FixBitmap = BitmapFactory.decodeFile(ImagePath, options); //FixBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.gv); byteArrayOutputStream = new ByteArrayOutputStream(); FixBitmap.compress(Bitmap.CompressFormat.JPEG, 80, byteArrayOutputStream); //compress to 50% of original image quality byteArray = byteArrayOutputStream.toByteArray(); ConvertImage = Base64.encodeToString(byteArray, Base64.DEFAULT); Алобайди источник
Ответы:
Пытаться:
или:
источник
источник
Захватите изображение и измените его размер.
источник
Вы можете использовать Matrix для изменения размера изображения камеры ....
источник
:)
источник
// фотография - это растровое изображение
источник
источник
источник
Ниже приводится функция изменения размера растрового изображения с сохранением того же соотношения сторон. Здесь я также написал подробное сообщение в блоге по этой теме, чтобы объяснить этот метод. Измените размер растрового изображения, сохранив одинаковое соотношение сторон .
источник
источник