Saltar al contenido

Disminuye el tamaño de la imagen sin perder su calidad en android

América, parte de nuestro staff, nos ha hecho el favor de escribir este escrito ya que domina perfectamente el tema.

Solución:

Debajo del código Trabajando para la imagen a escala como relación de aspecto:

Bitmap bitmapImage = BitmapFactory.decodeFile("Your path");
int nh = (int) ( bitmapImage.getHeight() * (512.0 / bitmapImage.getWidth()) );
Bitmap scaled = Bitmap.createScaledBitmap(bitmapImage, 512, nh, true);
your_imageview.setImageBitmap(scaled);

Comprime tu imagen sin perder calidad como whatsapp

public String compressImage(String imageUri) 

    public String getFilename() 
        File file = new File(Environment.getExternalStorageDirectory().getPath(), "MyFolder/Images");
        if (!file.exists()) 
            file.mkdirs();
        
        String uriSting = (file.getAbsolutePath() + "/" + System.currentTimeMillis() + ".jpg");
        return uriSting;

    

    private String getRealPathFromURI(String contentURI) 
        Uri contentUri = Uri.parse(contentURI);
        Cursor cursor = getContentResolver().query(contentUri, null, null, null, null);
        if (cursor == null) 
            return contentUri.getPath();
         else 
            cursor.moveToFirst();
            int index = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
            return cursor.getString(index);
        
    

    public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) 

Crear clase para la imagen de CompressFile

    public class CompressFile 
        public static File getCompressedImageFile(File file, Context mContext) 
            try 
                BitmapFactory.Options o = new BitmapFactory.Options();
                o.inJustDecodeBounds = true;

                if (getFileExt(file.getName()).equals("png")  catch (Exception e) 
                return null;
            
        

        public static String getFileExt(String fileName) 
            return fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
        

        public static Bitmap rotateImage(Bitmap source, float angle) 
            Matrix matrix = new Matrix();
            matrix.postRotate(angle);
            return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(),
                    matrix, true);
        
    

Utilice este código para comprimir mapa de bits en un tamaño inferior.

BitmapFactory.Options Options = new BitmapFactory.Options();
Options.inSampleSize = 4;
Options.inJustDecodeBounds = false;
action_bitmap = BitmapFactory.decodeFile(Glob.savedImage, Options);

Glob.savedImage es la ruta de cadena de la imagen.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *