我有一个功能,可以根据我的应用程序的高度和宽度之间的理想比例调整图像的大小,问题是图像的质量,当我尝试调整图像大小时,它会失去很多质量它像pixeled一样如果你在油漆上调整大小,有什么方法可以改善质量?
完美图像比率0,744(320x430) 有我的代码
public Bitmap redimensionarImagenMaximo(Bitmap mBitmap, float newWidth, float newHeigth){
//Redimensionamos
int width = mBitmap.getWidth();
int height = mBitmap.getHeight();
float actual = (float)width/height;
double perfect = 0.7441;
float scaleWidth;
float scaleHeight;
if(perfect >= actual)
{
scaleHeight = ((float) newHeigth) / height;
scaleWidth = scaleHeight;
}
else if(perfect <= actual)
{
scaleWidth = ((float) newWidth) / width;
scaleHeight = scaleWidth;
}
else
{
scaleWidth = newWidth;
scaleHeight = newHeigth;
}
// create a matrix for the manipulation
Matrix matrix = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
return Bitmap.createBitmap(mBitmap, 0, 0, width, height, matrix, false);
}
答案 0 :(得分:0)
如何替换最后一行代码:
return Bitmap.createBitmap(mBitmap, 0, 0, width, height, matrix, true);
为双线性插值设置最后一个参数true
。
或者你可以简单地使用
return Bitmap.createScaledBitmap(mBitmap, width, height, true);