gpt4 book ai didi

android BitmapFactory 总是返回 0

转载 作者:太空狗 更新时间:2023-10-29 12:50:26 24 4
gpt4 key购买 nike

我正在使用这个广为人知的代码

Display display = this.getWindowManager().getDefaultDisplay();
float dw = display.getWidth();
float dh = display.getHeight();

// load image dimensions, not the image itself
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;
Bitmap bmp = BitmapFactory.decodeFile(MyApp.getImageFilePath());


int heightRatio = (int) FloatMath.ceil(bmpFactoryOptions.outHeight / dh);
int widthRatio = (int) FloatMath.ceil(bmpFactoryOptions.outWidth / dw);

if ((heightRatio > 1) && (widthRatio > 1))// if true one side of the image is bigger than the screen
{
if (heightRatio > widthRatio) {
bmpFactoryOptions.inSampleSize = heightRatio;
} else {
bmpFactoryOptions.inSampleSize = widthRatio;
}
}
// decode it for real
bmpFactoryOptions.inSampleSize = bmpFactoryOptions.inSampleSize;
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888; //http://www.curious-creature.org/2010/12/08/bitmap-quality-banding-and-dithering/
bmpFactoryOptions.inJustDecodeBounds = false;
bmpFactoryOptions.inDither = true;
bmp = BitmapFactory.decodeFile(MyApp.getImageFilePath(), bmpFactoryOptions);

ImageView photo = (ImageView) this.findViewById(R.id.imageView1);

问题是

bmpFactoryOptions.outWidth
bmpFactoryOptions.outHeight
bmpFactoryOptions.inSampleSize

始终具有值 0。我在三种不同的设备上测试过它,我做错了什么?

和设置bmpFactoryOptions.inSampleSize = bmpFactoryOptions.inSampleSize + 1;

没有效果

最佳答案

与标题所说的相反,您的 BitmapFactory 返回的位图很好。

您从未在此语句中分配您的 bmpFactoryOptions 句柄。所以查询它应该不会产生任何结果。增加它没有帮助,因为您从未将它初始化为图像的属性。

Bitmap bmp = BitmapFactory.decodeFile(MyApp.getImageFilePath());

改为做这样的事情:

Bitmap bmp = BitmapFactory.decodeFile(MyApp.getImageFilePath(), bmpFactoryOptions);

这会将您的 bmpFactoryOptions 附加到您的 bmp。然后你可以查询选项。请注意,您的 BitmapFactory 正在返回一个非常好的位图,只是一个您对其属性没有任何句柄的位图。

关于android BitmapFactory 总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12643046/

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