Android:如何计算图像的纵横比?
Posted
技术标签:
【中文标题】Android:如何计算图像的纵横比?【英文标题】:Android : How to calculate aspect ratio of images? 【发布时间】:2015-10-12 07:13:31 【问题描述】:我有 100 张大尺寸的图像 (500*700 , 401*800 , 2345* 3567) ,所以我希望所有这些图像的高度都与 220 相同。下面我正在实现图像纵横比的计算。我想设置所有大尺寸图像的固定高度。我正在使用一些算术公式来计算纵横比,但让所有图像宽度相同,高度不同,但我希望高度固定。如何获得固定高度?感谢感谢。
这是我的图像纵横比计算代码
if (bitmapResizeImage != null)
int originalWidth = bitmapResizeImage.getWidth();
int originalHeight = bitmapResizeImage.getHeight();
Log.e("originalWidth "," = " + originalWidth +" originalHeight = " + originalHeight+" of imgElement = " + imgElement+ " Notation = " +all_Post.getStrNotationNo());
float aspect_ratio = originalWidth / originalHeight ;
Log.e("aspect_ratio "," = " + aspect_ratio);
float adjusted_width = 220 * originalWidth / originalHeight ;
Log.e("adjusted_width "," = " + adjusted_width);
float adjusted_height = originalWidth * originalHeight / originalWidth ;
Log.e("adjusted_height "," = " + adjusted_height);
pBar.setVisibility(View.GONE);
imageView.setImageBitmap(bitmapResizeImage);
【问题讨论】:
你在 logcat 中看到了什么关于aspect_ratio
的内容?
这个公式可以用一些基本的数学来简化:originalWidth * originalHeight / originalWidth
所以更正它是一个正确的值
【参考方案1】:
你或许应该试试typecasting
:
float aspect_ratio = (float)originalWidth / (float)originalHeight ;
因为这个类型转换操作会返回一个浮点值。
整数除以整数将得到整数形式的结果,该整数将分配给浮点变量。因此需要将操作数转换为浮点数,以确保计算结果为浮点数。
【讨论】:
我已经使用你的代码行进行了更改。但即使没有得到适当的宽度和高度。表示高度宽度。 float aspect_ratio = (float)originalWidth / (float)originalHeight ;float newImageWidth = aspect_ratio * (float)originalWidth ;是这样吗? 是的,没错。检查 originalWidth 和 originalHeight 中的值是否正确【参考方案2】:除了 Priyank 发布的内容之外,一旦您拥有正确的价值观 您可以在 ImageView 上使用 setImageBitmap 之前创建具有新尺寸的位图。使用
imageView.setImageBitmap(Bitmap.createBitmap(int width, int height, Bitmap.Config config));
【讨论】:
以上是关于Android:如何计算图像的纵横比?的主要内容,如果未能解决你的问题,请参考以下文章
图像的 UIPageViewController 如何在方向改变时保持图像的纵横比?