android-以不同的位图大小在jpg和png中加载同一图像

android-以不同的位图大小在jpg和png中加载同一图像,第1张

概述我正在加载两个位图,一个为jpg,另一个为png格式.图像完全相同,并以相同的分辨率保存:3461×2480.当我在InSampleSize中使用具有相同比例的BitmapFactory.decodeFile()加载图像时,会得到具有不同大小的内存位图,jpg略大于png.我同时在图库中显示,区别很明显.我已经在LogCat中打印了

我正在加载两个位图,一个为jpg,另一个为png格式.图像完全相同,并以相同的分辨率保存:3461×2480.

当我在InSampleSize中使用具有相同比例的BitmapFactory.decodefile()加载图像时,会得到具有不同大小的内存位图,jpg略大于png.我同时在图库中显示,区别很明显.我已经在LogCat中打印了位图大小,并验证了它们在加载后具有不同的大小.
这两个映像都位于外部存储中,并且位于同一目录中.

谁知道加载后它们的大小为何不同?我该如何控制?

我使用的代码是:

public static Bitmap loadImageScaled(String filename, int wIDth, int height){    // Get the dimensions of the bitmap    BitmapFactory.Options bmOptions = new BitmapFactory.Options();    bmOptions.inJustDecodeBounds = true;    BitmapFactory.decodefile(filename, bmOptions);    int photoW = bmOptions.outWIDth;    int photoH = bmOptions.outHeight;    Log.d(TAG, "Image w= " + photoW + " h=" + photoH + " " + filename);    Log.d(TAG, "In    w= " + wIDth + " h=" + height);    // Determine how much to scale down the image    int scaleFactor = Math.min(photoW/wIDth, photoH/height);    Log.d(TAG, "scaleFactor = " + scaleFactor);    // Decode the image file into a Bitmap    bmOptions.inJustDecodeBounds = false;    bmOptions.inSampleSize = scaleFactor;    bmOptions.inPurgeable = true;    Bitmap bitmap = BitmapFactory.decodefile(filename, bmOptions);    Log.d(TAG, "Out   w= " + bitmap.getWIDth() + " h=" + bitmap.getHeight());    return bitmap;}

在LogCat中,我收到以下消息:

Image w= 3461 h=2480 img09.jpgIn    w= 173 h=124scaleFactor = 20Out   w= 216 h=155Image w= 3461 h=2480 img10.pngIn    w= 173 h=124scaleFactor = 20Out   w= 173 h=124

任何想法?

解决方法:

是的,我猜没关系:)如果您查看文档(http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inSampleSize),请注意它的工作原理.

而且,如果您计算数字,则可以看到3461/216 = 16和3461/173 =20.这意味着png正在使用所需的样本大小,但是jpg会四舍五入到最接近的2的幂.

总结

以上是内存溢出为你收集整理的android-以不同的位图大小在jpg和png中加载同一图像全部内容,希望文章能够帮你解决android-以不同的位图大小在jpg和png中加载同一图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1074512.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存