есть код на Java
Bitmap bm = BitmapFactory.decodeFile(PATH_TO_FILE);
int width = bm.getWidth();
int height = bm.getHeight();
int newWidth = 128;
int newHeight = 128;
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);
Подскажите как правильно сделать?
Нужно привести картинку к размеру 128x128.
Но картинка большего размера может быть не пропорциональна. И при приведении к 128x128 она искажается.
Как правильно уменьшить картинку к размеру 128x128 чтобы она не искажалась. Пусть даже получится например 128x100 и так далее.
Важно чтобы попадала в рамки Не более 128x128
Спасибо.
Здравствуйте, Аноним, Вы писали:
А>есть код на Java
А>А> Bitmap bm = BitmapFactory.decodeFile(PATH_TO_FILE);
А> int width = bm.getWidth();
А> int height = bm.getHeight();
А> int newWidth = 128;
А> int newHeight = 128;
А> 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);
А>
А>Подскажите как правильно сделать?
А>Нужно привести картинку к размеру 128x128.
А>Но картинка большего размера может быть не пропорциональна. И при приведении к 128x128 она искажается.
А>Как правильно уменьшить картинку к размеру 128x128 чтобы она не искажалась. Пусть даже получится например 128x100 и так далее.
А>Важно чтобы попадала в рамки Не более 128x128
А>Спасибо.
в инете поищи алгоритмы.
смысл всех их в том что бы анализировать соседние пиксели и устредняя их формировать итоговое изображение.
Здравствуйте, Аноним, Вы писали:
А>есть код на Java
А>[java]
А> Bitmap bm = BitmapFactory.decodeFile(PATH_TO_FILE);
Если я правильно понял, то это отсюда
http://developer.android.com/reference/android/graphics/Bitmap.html
и там есть
http://developer.android.com/reference/android/graphics/Bitmap.html#createScaledBitmap(android.graphics.Bitmap, int, int, boolean)
Насчет размеров для сохранения пропорциональности уже сказали.