99 Tworzę aplikację i chcę ustawić widok galerii. Nie chcę, aby obrazy w widoku galerii miały pełny rozmiar. Jak zmienić rozmiar obrazów w systemie Android? android bitmap Jignesh Ansodariya źródło 6 Chcesz zmniejszyć rozmiar, jeśli obraz lub po prostu chcesz wyświetlić mały? MAC Odpowiedzi: 186 Próbować: Bitmap yourBitmap; Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); lub: resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true); dobrze źródło 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); } Hernaldo Gonzalez źródło 8 Przechwyć obraz i zmień jego rozmiar. 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(); Jay Mayu źródło 6 Możesz użyć Matrix, aby zmienić rozmiar obrazu z kamery .... 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 źródło 5 bm = Bitmap.createScaledBitmap(bitmapSource, width, height, true); :) Misca źródło 5 // zdjęcie to obraz bitmapowy 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 źródło 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 voidRy źródło 4 resized = Bitmap.createScaledBitmap(yourImageBitmap,(int)(yourImageBitmap.getWidth()*0.9), (int)(yourBitmap.getHeight()*0.9), true); Vaishali Sutariya źródło 2 Poniżej znajduje się funkcja zmiany rozmiaru mapy bitowej przy zachowaniu tego samego współczynnika proporcji. Tutaj również napisałem szczegółowy wpis na blogu na ten temat, aby wyjaśnić tę metodę. Zmień rozmiar mapy bitowej, zachowując ten sam współczynnik proporcji . 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; } } Asad Ali Choudhry źródło 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); Alobaidi źródło
186 Próbować: Bitmap yourBitmap; Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true); lub: resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true); dobrze źródło
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); } Hernaldo Gonzalez źródło
8 Przechwyć obraz i zmień jego rozmiar. 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(); Jay Mayu źródło
6 Możesz użyć Matrix, aby zmienić rozmiar obrazu z kamery .... 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 źródło
5 // zdjęcie to obraz bitmapowy 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 źródło
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 voidRy źródło
4 resized = Bitmap.createScaledBitmap(yourImageBitmap,(int)(yourImageBitmap.getWidth()*0.9), (int)(yourBitmap.getHeight()*0.9), true); Vaishali Sutariya źródło
2 Poniżej znajduje się funkcja zmiany rozmiaru mapy bitowej przy zachowaniu tego samego współczynnika proporcji. Tutaj również napisałem szczegółowy wpis na blogu na ten temat, aby wyjaśnić tę metodę. Zmień rozmiar mapy bitowej, zachowując ten sam współczynnik proporcji . 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; } } Asad Ali Choudhry źródło
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); Alobaidi źródło
Odpowiedzi:
Próbować:
lub:
źródło
źródło
Przechwyć obraz i zmień jego rozmiar.
źródło
Możesz użyć Matrix, aby zmienić rozmiar obrazu z kamery ....
źródło
:)
źródło
// zdjęcie to obraz bitmapowy
źródło
źródło
źródło
Poniżej znajduje się funkcja zmiany rozmiaru mapy bitowej przy zachowaniu tego samego współczynnika proporcji. Tutaj również napisałem szczegółowy wpis na blogu na ten temat, aby wyjaśnić tę metodę. Zmień rozmiar mapy bitowej, zachowując ten sam współczynnik proporcji .
źródło
źródło