gpt4 book ai didi

java - 如何成功升级位图?

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:56 25 4
gpt4 key购买 nike

我正在使用 createBitmap 重新创建放大的图像,但收到以下错误消息。

Attempt to invoke virtual method 'boolean android.graphics.Bitmap.isRecycled()' on a null object reference 

使用 createScaledBitmap 时出现内存不足错误。我已经尝试过其他论坛的可能解决方案,但没有任何运气。

public Bitmap scaleToActualAspectRatio(Bitmap bitmap) {

Bitmap newbitmap = null;

try {
Matrix matrix = new Matrix();
matrix.postScale(scaledWidth, scaledHeight);

newbitmap = Bitmap.createBitmap(bitmap, 0, 0, scaledWidth, scaledHeight, matrix, false);
//bitmap.recycle();

} catch(Exception e) {
e.printStackTrace();
}

return newbitmap;
}

如有任何帮助,我们将不胜感激。

最佳答案

我希望这个函数对你有用,再想想比例值在这里 float ,你传递所需位图的高度和宽度。仔细阅读评论。

public Bitmap scaleToActualAspectRatio(Bitmap bitmap) {

Bitmap newBitmap = null;

try {

//width = 500 and height = 500
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int newWidth = 1200;
int newHeight = 1200;

// calculate the scale - in this case = 2.4f
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;

// create matrix for the manipulation
Matrix matrix = new Matrix();

// resize the bit map 2.4f, 2.4f
matrix.postScale(scaleWidth, scaleHeight);

// recreate the new Bitmap
newBitmap = Bitmap.createBitmap(bitmap, 0, 0, newWidth, newHeight, matrix, true);

} catch (Exception e) {
e.printStackTrace();
}

return newBitmap;
}

关于java - 如何成功升级位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48052836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com