2010-11-23 3 views
0

Если на моем телефоне есть изображение, которое я хочу отправить на сервер размером 1 мб или выше, я хочу взять это изображение и уменьшить его до меньшего размера, не впиваясь в исходное изображение. Я знаю, как получить от телефона, и я также знаю, как отправить его на сервер, мне просто нужно знать, как сделать изображение меньше, потому что большие файлы размером более 1 Мб дают мне проблемы.Android shrink большой размер изображения

ответ

1

Вы можете масштабировать Bitmaps так:

// Load in your bitmap here, I'll leave this detail up to you 
Bitmap _bitmapPreScale = BitmapFactory.decodeResource(resources, fieldValue); 

int oldWidth = _bitmapPreScale.getWidth(); 
int oldHeight = _bitmapPreScale.getHeight(); 
int newWidth = width; // whatever your desired width and height are 
int newHeight = height; 

// calculate the scale 
float scaleWidth = ((float) newWidth)/oldWidth; 
float scaleHeight = ((float) newHeight)/oldHeight; 

// create a matrix for the manipulation 
Matrix matrix = new Matrix(); 
// resize the bit map 
matrix.postScale(scaleWidth, scaleHeight); 

// recreate the new Bitmap 
Bitmap _bitmapScaled = Bitmap.createBitmap(_bitmapPreScale, 0, 0, oldWidth, oldHeight, matrix, true); 
+0

Есть ли способ проверить размер файла для выбранного изображения. Например, если размер файла> 1mb или 1024kb делает то, что вы разместили выше, у меня нет проблем с изображениями меньшего размера размером с изображениями HD. Спасибо – user516883

+0

Хорошо, я думаю, я могу просто использовать этот файл file = new File ("infilename"); затем вызовите файл.length, я думаю, что это сделает трюк – user516883

Смежные вопросы