Моя проблема в том, что я сжимаю размер изображения (от Mb до Kb), который я получаю от галереи, высоты и ширины изображения также сжимаются. Может ли кто-нибудь сказать мне, как я могу решить эту проблему? Я хочу получить изображение в полном размере (полная высота и полная ширина).Когда я сжимаю размер изображения, получающ от gallary, высота и ширина также сжаты
Это код onclick
слушателя на изображение:
try {
IsProfilePic = 5;
usrimage5.setImageBitmap(Bitmap.createScaledBitmap(selectedBitmap, usrimage5.getWidth(), usrimage5.getHeight(), false));
usrimage5.setScaleType(ImageView.ScaleType.FIT_XY);
if (usrimage5.getTag() != new Integer(0))
DeleteImageID = usrimage5.getTag().toString();
} catch (OutOfMemoryError e) {
Log.e("Nithin 5", "" + e.toString());
}
и это код, с помощью которого я сжатия изображения:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
selectedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream.toByteArray();
encoded = resizeBase64Image(Base64.encodeToString(byteArray, Base64.DEFAULT));
Это метод resizeBase64Image()
, что я при изменении размера изображения:
public String resizeBase64Image(String base64image) {
byte[] encodeByte = Base64.decode(base64image.getBytes(), Base64.DEFAULT);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPurgeable = true;
Bitmap image = BitmapFactory.decodeByteArray(encodeByte, 0, encodeByte.length, options);
if (image.getHeight() <= 400 && image.getWidth() <= 400) {
return base64image;
}
image = Bitmap.createScaledBitmap(image, 400, 400, false);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
System.gc();
return Base64.encodeToString(b, Base64.NO_WRAP);
}