Android 具有高质量和高宽比的最佳图像大小调整器是什么(如电报、whatsapp或…?)?

Android 具有高质量和高宽比的最佳图像大小调整器是什么(如电报、whatsapp或…?)?,android,Android,我希望在不降低质量和纵横比的情况下调整图像大小,并使用以下代码: String filePath = "/sdcard/download/0.jpg"; BitmapFactory.Options Options = new BitmapFactory.Options(); Options.inSampleSize = 4; Options.inJustDecodeBounds = false; Bitmap bmp = BitmapFactory.decodeFile(filePath,

我希望在不降低质量和纵横比的情况下调整图像大小,并使用以下代码:

String filePath = "/sdcard/download/0.jpg";

BitmapFactory.Options Options = new BitmapFactory.Options();
Options.inSampleSize = 4;
Options.inJustDecodeBounds = false;

Bitmap bmp = BitmapFactory.decodeFile(filePath, Options);

int newWidht = 600;
int originalWidth = Options.outWidth;
int originalHeight = Options.outHeight;
float AspectRatio = (float)originalWidth / originalHeight;
float tempnewHeight = newWidht/ AspectRatio;
int  newHeight = (int)tempnewHeight;

Bitmap resized = Bitmap.createScaledBitmap(bmp, newWidth, newHeight, false);

ContextWrapper cw = new ContextWrapper(getApplicationContext());
File mypath=new File("/sdcard/download/","1.jpg");
FileOutputStream fos = null;

fos = new FileOutputStream(mypath);
resized.compress(Bitmap.CompressFormat.JPEG, 100, fos);
fos.close();
但这种方法会降低质量或无法很好地处理不同的分辨率,并且我保存的图片非常糟糕,无法填充。
我看到一些关于这个的帖子,但找不到解决办法。
我认为Bitmap.createScaledBitmap()会降低质量

请帮帮我

谢谢你

最好的质量和更小的尺寸。
这句话就是答案

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

最好的质量和更小的尺寸。
这句话就是答案

options.inPreferredConfig = Bitmap.Config.ARGB_8888;

您正在将
false
作为
filter
参数传递给
createScaledBimat
。这可能会导致最近邻缩放,这通常看起来很糟糕。@Michael我测试了true和false,但没有任何变化在大多数情况下肯定会有所不同,因为(根据
位图
源代码判断)它使用最近邻缩放或基于
过滤器
参数的双线性过滤。双线性过滤是否足够好,由您自己决定。如果不是,您可能需要寻找一些替代的缩放解决方案(例如,一些第三方库)。@Michael说出它的名称您正在将
false
作为
filter
参数传递给
createScaledBitmap
。这可能会导致最近邻缩放,这通常看起来很糟糕。@Michael我测试了true和false,但没有任何变化在大多数情况下肯定会有所不同,因为(根据
位图
源代码判断)它使用最近邻缩放或基于
过滤器
参数的双线性过滤。双线性过滤是否足够好,由您自己决定。如果不是的话,你可能需要寻找一些替代的扩展解决方案(例如,一些第三方库)。@Michael说它的名字非常好的答案。谢谢你。没人帮我把你排除在外。非常好的回答。谢谢你。没人帮我把你排除在外。非常好