关于ImageView小于图片尺寸时会显示模糊现象

您所在的位置:网站首页 平板图片显示模糊 关于ImageView小于图片尺寸时会显示模糊现象

关于ImageView小于图片尺寸时会显示模糊现象

2024-07-04 09:40| 来源: 网络整理| 查看: 265

忽然发现一个问题,ImageView小于图片尺寸时会显示模糊现象,这个可能不怎么留意到,照理说缩小后像素密集了应该清楚,主观印象是这样,但是实际上却不是这样。这里记录一下。

转载注明本文来源:https://editor.csdn.net/md/?articleId=116294062

同个图片在不同尺寸图片控件下显示效果

在这里插入图片描述 可以得出,越接近图片尺寸,显示越清晰,过大过小都会导致模糊

缩小图片bitmap后显示

在这里插入图片描述 看得出,效果是一样的,都会模糊。bitmap缩小本质会对图片质量有损,模糊是正常的。照理说缩小后像素密集了应该清楚,但其实不是。缩小后单位面积仍然只能显示固定数量的像素,所以其实并没有更密集这么一说。那么如果你缩了50%,实际上有一半的像素被扔掉了

android 图片处理 resize 探秘

参考文章:https://blog.csdn.net/jpl1880/article/details/84563084 根据相关的方法等比压缩对图片resize 操作优化

public static Bitmap getResizedBitmap(Bitmap bitmap,float newWidth, float newHeight) { if (bitmap.getHeight()>bitmap.getWidth()){ newHeight=300f; newWidth= (int) (bitmap.getWidth()*(newHeight/(float) bitmap.getHeight())); }else{ newWidth=300f; newHeight= (int) (bitmap.getHeight()*(newWidth/(float) bitmap.getWidth())); } Bitmap resizedBitmap = Bitmap.createBitmap((int)newWidth,(int) newHeight, Bitmap.Config.ARGB_8888); float scaleX = newWidth / (float) bitmap.getWidth(); float scaleY = newHeight / (float) bitmap.getHeight(); float pivotX = 0; float pivotY = 0; Matrix scaleMatrix = new Matrix(); scaleMatrix.setScale(scaleX, scaleY, pivotX, pivotY); Canvas canvas = new Canvas(resizedBitmap); canvas.setMatrix(scaleMatrix); canvas.drawBitmap(bitmap, 0, 0, new Paint(Paint.FILTER_BITMAP_FLAG | Paint.DITHER_FLAG | Paint.ANTI_ALIAS_FLAG)); return resizedBitmap; }

在这里插入图片描述

结论

只要是显示大小不等于图片大小,必定会模糊,原因是设备的像素密度是固定的,放大必定模糊,而缩小像素丢失也必定模糊,没有很好的办法,图片大小与显示大小差别越大越模糊。优化方式可以参考ps的锐化等算法处理。一般而言,缩小看起来模糊感官更不明显些。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3