java - 如何使用 BitmapFactory 加载图像文件但不是原始大小(缩小它)
问题描述
所以我正在使用这段代码
Bitmap myBitmap = BitmapFactory.decodeFile(fname);
加载图像文件。但有时加载的图像可能像 512x512 一样大,我现在不想加载图像的所有 262144 像素,而是按比例加载它。我该怎么做?
解决方案
你得到原始图像Bitmap myBitmap = BitmapFactory.decodeFile(fname)
。
Integer scaleValue;
Integer scaleHeight = desiredMaxPixelHeight/myBitmap.getHeight();
Integer scaleWidth = desiredMaxPixelWidth/myBitmap.getWidth();
if (scaleHeight < 1 && scaleWidth < 1) scaleValue = 1;
else if (scaleHeight > scaleWidth) scaleValue = scaleHeight;
else scaleValue = scaleWidth;
Bitmap scaledBitmap = Bitmap.createScaledBitmap(myBitmap, myBitmap.getHeight()/scaleValue, myBitmap.getWidth()/scaleValue, false);
缩放逻辑可以做得更好,但重点是您可以检查有关原始位图的信息,然后使用Bitmap.createScaledBitmap(oldBitmap,sizeX,sizeY,false)
推荐阅读
- mysql - 关键字'with'在 MySQL 8 Workbench 中不起作用
- c# - 命名空间 Devexpress 中不存在类型或命名空间 Xtralayout
- firebase - 删除所有用户使用但仅适用于 Cloud Firestore 中的一位用户的数据
- c# - 本地共享的 C# 文件/目录权限
- javascript - Django Datepicker和Autocomplete一起使用时不呈现
- javascript - dc.js - 图表不渲染(单行条形图 - 水平行),除了图例、轴和刻度线/值(渲染)
- java - React Native:TypeError:null不是对象
- google-bigquery - How can I use BigQuery's dataset in Data Lab
- python - A* 搜索迷宫 - 路径不存在时的无限循环 - Python
- google-cloud-platform - 在哪里可以找到 Cloud Speech-to-Text API 调用的存储结果?