【问题标题】:Android : How to calculate aspect ratio of images?Android:如何计算图像的纵横比?
【发布时间】: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
  • 所以更正它是一个正确的值

标签: android


【解决方案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));

【讨论】:

    猜你喜欢
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2018-10-25
    • 2019-04-02
    • 1970-01-01
    相关资源
    最近更新 更多