在 Canvas Bitmap Android 中调整大小时图像像素化

问题描述 投票:0回答:1

徽标即圆形是png图像,其质量下降如图所示。 在发布这个问题之前,我参考了 Stackoverflow 上所有可能的解决方案,但没有一个对我有用。

要根据我的使用情况调整图片大小,我目前正在使用下面的方法。

fun BITMAP_RESIZER(bitmap: Bitmap, newWidth: Int, newHeight: Int): Bitmap? {
    val scaledBitmap = Bitmap.createBitmap(newWidth, newHeight, Bitmap.Config.ARGB_8888)
    val ratioX = newWidth / bitmap.width.toFloat()
    val ratioY = newHeight / bitmap.height.toFloat()
    val middleX = newWidth / 2.0f
    val middleY = newHeight / 2.0f
    val scaleMatrix = Matrix()
    scaleMatrix.setScale(ratioX, ratioY, middleX, middleY)
    val canvas = Canvas(scaledBitmap)
    canvas.setMatrix(scaleMatrix)
    canvas.drawBitmap(
        bitmap,
        middleX - bitmap.width / 2,
        middleY - bitmap.height / 2,
        Paint(Paint.FILTER_BITMAP_FLAG)
    )
    return scaledBitmap
}

结果,你可以看到它的质量仍然没有提高。除了这个解决方案之外,我已经使用了所有其他方法,但没有一个对我有用。

你能让我知道我做错的确切事情是什么或任何其他可能的答案吗?

android canvas bitmap android-bitmap bitmapimage
1个回答
-1
投票

你找到解决办法了吗?我也有同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.