java - 调整位图大小

标签 java android image bitmap resize

下面的代码调整位图的大小并保持宽高比。 我想知道是否有更有效的调整大小的方法,因为我知道我正在编写 android API 中已经可用的代码。

private Bitmap resizeImage(Bitmap bitmap, int newSize){
    int width = bitmap.getWidth();
    int height = bitmap.getHeight(); 

    int newWidth = 0;
    int newHeight = 0;

    if(width > height){
        newWidth = newSize;
        newHeight = (newSize * height)/width;
    } else if(width < height){
        newHeight = newSize;
        newWidth = (newSize * width)/height;
    } else if (width == height){
        newHeight = newSize;
        newWidth = newSize;
    }

    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;

    Matrix matrix = new Matrix();
    matrix.postScale(scaleWidth, scaleHeight);

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
            width, height, matrix, true); 

    return resizedBitmap;
}

最佳答案

关于java - 调整位图大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9583757/

相关文章:

java - 如何使用带有校验和控制的 Java 从 Google Cloud Storage 下载大文件

java - 如何仅将字符串传递给 mybatis 集合列中的参数?

java - 我可以捕获已经捕获的异常吗?

android - 如何将 android 小部件添加到 ViroCore 场景?

android - 如何从文件管理器中获取图像并将其转换为字节数组以存储在 Android 中的 sqlite 中

java - 如何对有两个公共(public)方法,一个调用另一个的情况进行单元测试?

java - 崩溃 : com. badlogic.gdx.physics.box2d.World.jniCreateBody

java - 当我有 2 个 setOnclickListener 时,为什么我的应用程序总是崩溃?

image - Laravel 图片上传创建文件夹而不是文件

python - 使用代码将任何 2D 图像变成可 3D 打印的雕塑