首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何计算图像的新高度和宽度以适应预定义的高度和宽度,而不影响java中的图像真实宽高比?

在Java中,可以使用以下步骤计算图像的新高度和宽度以适应预定义的高度和宽度,同时保持图像的真实宽高比:

  1. 获取原始图像的宽度和高度。
  2. 计算原始图像的宽高比,即宽度除以高度。
  3. 计算预定义的宽高比,即预定义宽度除以预定义高度。
  4. 如果原始图像的宽高比大于预定义的宽高比,则以预定义的宽度为基准,计算新的高度。新的高度等于预定义宽度除以原始图像的宽高比。
  5. 如果原始图像的宽高比小于预定义的宽高比,则以预定义的高度为基准,计算新的宽度。新的宽度等于预定义高度乘以原始图像的宽高比。
  6. 如果原始图像的宽高比等于预定义的宽高比,则新的宽度和高度与预定义的宽度和高度相同。

以下是一个示例代码,用于计算图像的新高度和宽度:

代码语言:java
复制
import java.awt.image.BufferedImage;

public class ImageResize {
    public static void main(String[] args) {
        int predefinedWidth = 800; // 预定义的宽度
        int predefinedHeight = 600; // 预定义的高度

        BufferedImage originalImage = null; // 原始图像

        // 获取原始图像的宽度和高度
        int originalWidth = originalImage.getWidth();
        int originalHeight = originalImage.getHeight();

        // 计算原始图像的宽高比
        double originalAspectRatio = (double) originalWidth / originalHeight;

        // 计算预定义的宽高比
        double predefinedAspectRatio = (double) predefinedWidth / predefinedHeight;

        int newWidth, newHeight;

        if (originalAspectRatio > predefinedAspectRatio) {
            // 以预定义的宽度为基准,计算新的高度
            newWidth = predefinedWidth;
            newHeight = (int) (predefinedWidth / originalAspectRatio);
        } else if (originalAspectRatio < predefinedAspectRatio) {
            // 以预定义的高度为基准,计算新的宽度
            newWidth = (int) (predefinedHeight * originalAspectRatio);
            newHeight = predefinedHeight;
        } else {
            // 宽高比相等,新的宽度和高度与预定义的宽度和高度相同
            newWidth = predefinedWidth;
            newHeight = predefinedHeight;
        }

        // 输出新的宽度和高度
        System.out.println("New Width: " + newWidth);
        System.out.println("New Height: " + newHeight);
    }
}

在这个示例中,我们首先获取原始图像的宽度和高度,然后计算原始图像的宽高比和预定义的宽高比。根据宽高比的比较,我们计算新的宽度和高度,以适应预定义的宽度和高度。最后,我们输出新的宽度和高度。

请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行调整和优化。另外,根据问题描述,我们不提及具体的云计算品牌商,因此无法提供腾讯云相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

浏览器之性能指标-CLS

以下是宽高比在渲染中的几个方面作用: 布局计算:浏览器在计算页面布局时,会使用图片的宽高比来确定图片在文档流中的尺寸和位置。宽高比可以帮助浏览器确定图片的宽度和高度,以便正确地分配空间。...❞ 如何确定/设置宽高比 确定或设置一个图片的宽高比可以通过以下几种方法实现: 使用固定的宽度和高度:如果我们已经确定了要显示的图片的具体宽度和高度,可以直接使用这些数值来计算宽高比。...宽高比可以通过将宽度除以高度或将高度除以宽度来得到。 CSS样式:可以通过CSS样式来设置图片的宽高比。使用padding-top属性,将上边距设置为以百分比表示的宽高比。...然而,当无法提供精确尺寸的图像时,我们应为显示的每个图像设置宽度和高度属性。这样,用户的浏览器将准确知道图像的位置,而不需要在最后一刻调整布局。...调整图像大小的更好方法是使用宽高比(aspect ratio)。它是宽度与高度的比例(例如16:9)。 使用宽高比可以让浏览器计算显示图像所需的空间 - 从而减少布局偏移的风险。

98920

如何在canvas中模拟css的背景图片样式

backgroundSizeValueArr[0][0] } else if (backgroundSizeValueArr[0] === 'auto') { // auto类型,那么根据设置的新高度以图片原宽高比进行自适应...backgroundSizeValueArr[0][0] } } else if (backgroundSizeValueArr[0] === 'auto') { // auto类型,那么根据设置的新高度以图片原宽高比进行自适应...== -1) { // 没有设置图片高度或者设置为auto,那么根据设置的新宽度以图片原宽高比进行自适应 drawOpt.height = zoomHeight(imageRatio...canvas的宽高比判断,到底是缩放图片的宽度和canvas的宽度一致,还是缩放图片的高度和canvas的高度一致。...类型的实现反过来即可,如果图片的宽高比大于canvas的宽高比,为了让图片显示完全,让图片的宽度和canvas的宽度一致,高度自适应。

7.1K41
  • 【Android 内存优化】自定义组件长图组件 ( 获取图像宽高 | 计算解码区域 | 设置图像解码属性 复用 像素格式 | 图像绘制 )

    【Android 内存优化】自定义组件长图组件 ( 自定义组件构造方法 ) 基础上继续开发 ; 一、获取图像真实宽高 ---- 显示的图像是一张长图 , 在该组件中 , 宽度肯定要完整显示出来 , 解码图片的不同高度的数据...显示区域计算原则 : 这是一张长图 , 宽度完全显示 , 高度显示部分 ; 根据组件的宽高计算图像显示的区域 , 组件的宽高已知 , 宽高比例确定 ; 该宽高比例下 , 图片显示的区域也必须是该比例 ;...图像宽高与组件宽高比例 : 加载的图像高度宽度 , 与组件的高度宽度比例一致 ; \dfrac{mViewWidth }{mViewHeight} = \dfrac{加载的图像宽度}{加载的图像高度}...计算区域高度 : 图像截取的宽度已知 , 组件的宽高已知 , 计算图像截取的高度 : \begin{array}{lcl} \dfrac{mViewWidth }{加载的图像宽度} &=& \dfrac...mRect.right = mImageWidth; // 根据图像宽度 和 组件宽度 , 计算出缩放比例 // 组件宽度 / 图像宽度 = 缩放因子

    2K10

    最新的目标检测的深度架构 | 参数少一半、速度快3倍+

    对角层是不同大小的方形层,相当于一个 FPN,而非对角层是矩形层(这是xNets所特有的)。 层l1,1是最大的层,每向右一步,层宽度减半,而每向下一步高度减半。...例如,层l3,4是层l3,3宽度的一半。对角层建模宽高比接近方形的目标,而非对角层建模宽高比不接近方形的目标。接近矩阵右上角或左下角的层建模宽高比极高或极低的目标。...2 层范围 矩阵中的每个层都对具有一定宽度和高度的目标进行建模,因此我们需要定义分配给矩阵中每个层的目标的宽度和高度范围。范围需要反映矩阵层特征向量的感受野。...矩阵中向右的每一步都有效地使水平维度中的感受野加倍,而每一步都使垂直维度上的感受场加倍。因此,当我们在矩阵中向右或向下移动时,宽度或高度的范围需要加倍。...由于目标大小在其指定的层内几乎是均匀的,因此与其他架构(例如FPN)相比,宽度和高度的动态范围更小。因此,回归目标的高度和宽度将变得更容易优化问题。

    66220

    教程 | 单级式目标检测方法概述:YOLO与SSD

    这么做的原因是用于图像分类的数据更易于标准(因此成本更低),因为其仅需单个标签,而不需要为每张图像都定义边界框标注。...在以图像分类器的形式预训练了骨干架构之后,我们将移除网络的最后几层,以便我们的骨干网络能输出堆叠的特征图集合,它们以更低的空间分辨率描述了原图像,尽管它们有更高的特征(通道)分辨率。...为了完整描述被检测出的目标,我们需要定义: 一个网格单元包含一个目标的可能(pobj) 该目标属于哪个类别(c1, c2, ..., cC) 四个边界框描述量,描述了标注框的 x 坐标、y 坐标、宽度和高度...我们定义框宽度和高度的方式让我们的模型预测的是平方根宽度和高度;通过平方根值的形式定义框的宽度和高度,大数值之间的差会没有小数值之间的差那样显著(看看 的图就能确定这一点)。...由于与原来的预测平方根宽度和高度相似的原因,我们将定义我们的任务来预测与我们的边界框先验的对数偏移量。

    82310

    Unity3D-关于项目的屏幕适配(看我就够了)

    屏幕的宽高比(Aspect Ratio) = 屏幕宽度/屏幕高度 3-2....Paste_Image.png 2、屏幕宽高比 屏幕的宽高比Aspect Ratio = 屏幕宽度/屏幕高度 ?...Paste_Image.png 5、Unity3D中的摄像机设置 Unity编辑器中只能直接调整摄像机的高度,那摄像机的宽度是如何确定的呢? 答案就是我们最前面提到的屏幕宽高比。...Unity会根据当前屏幕实际的宽高比和摄像机的orthographicSize值来计算出摄像机的宽度值,即: 摄像机实际宽度 = 摄像机orthographicSize * 2 * 屏幕宽高比 即是...摄像机实际宽度 = 摄像机高度 * 屏幕宽高比 我举个例子说明一下,iPhone4的屏幕像素为640*960,宽高比为2:3,假设Pixels To Units值为100,那么如果设摄像机高度size

    27.8K54

    宝, 来学习一下CSS中的宽高比,让 h5 开发更想你的夜!

    在图像和其他响应式元素的宽度和高度之间有一个一致的比例是很重要的。在CSS中,我们使用padding hack已经很多年了,但现在我们在CSS中有了原生的长宽比支持。...在网页设计中,高宽比的概念是用来描述图像的宽度和高度应按比例调整。 考虑下图 比率是4:3,这表明苹果和葡萄的比例是4:3。 换句话说,我们可以为宽高比为4:3的最小框是4px * 3px框。...它有助于设计师创建一个图像大小的清晰指南,这样开发者就可以在开发过程中处理它们。 计算宽高比 为了测量宽高比,我们需要将宽度除以如下图所示的高度。 宽度和高度之间的比例是1.33。...在进行UI设计时,强烈建议你确切地知道你所使用的图像的宽高比是多少。使用这个网址可以帮我们快速计算。 网址地址:http://lawlesscreation.github......为了找出要使用的百分比值,我们需要将图像的高度除以宽度。得到的数字就是我们要使用的百分比。 假设图像宽度为260px,高度为195px。

    1.7K30

    CVPR 2019 行人检测新思路:高级语义特征检测取得精度新突破

    》,作者将行人检测问题转化为高级语义特征检测的问题,刷新了行人检测精度的新高度!...算法思想 特征检测是计算机视觉中常用算法,比如我们所熟知的边缘检测、Blob检测,简单点说就是检测图像中的感兴趣部分。在传统的计算机视觉视觉中,这往往被认为是low-level的操作。...输入图像经过卷积网络,然后分成Center Heatmap计算和Scale Map 计算,得到的中心点坐标和宽高大小,即检测出了行人。 看起来很简单,但却是很有效! 下图是更详细的网络架构图: ?...同样在Scale Prediction这一端,作者尝试了预测高度、宽度和二者都预测。发现只预测高度的效果最好(此时设置固定宽高比0.41)。...读完此文,CV君在想,人脸和行人的宽高比相对变化较小,该文提出的算法取得了很不错的结果。那么对于通用目标检测,宽高比变化比较大,该算法结果会如何呢?希望有进一步实验结果出来。 希望该文对你有帮助!

    1.1K10

    关于ffmpeg height not divisible by 2的错误

    1175,而奇数分辨率对部分视频编码而言是一个非法参数 ,原因主要如下: FFmpeg 默认不允许生成视频的分辨率宽度或高度为奇数主要与视频压缩标准和编解码过程中的某些算法要求有关。...许多视频编码标准,例如H.264和H.265,使用了块为基础的编码方法。这些块通常是宽度和高度都是2的倍数的矩形(例如,4x4, 8x8, 16x16等)。...当编码器处理视频帧时,如果帧的宽度或高度是奇数,将不能够将图像完整地分割成标准的块,这可能会导致编码过程中出现问题。例如,如果有一个奇数宽度的视频帧,最右边会有一个无法形成完整块的列像素。...在ffmpeg的scale 参数中,可以使用 -1 和 -2 这样来等比例缩放视频大小,但二者略有差异,建议使用-2而不是-1,之前我们就是使用了-1才出现的问题,二者的具体差异如下: -1 在 scale...过滤器中用作自动计算宽度或高度的占位符,同时保持源视频的宽高比不变。

    16610

    现代图片性能优化及体验优化指南 - 缩放精细化展示及避免布局偏移、拉伸

    当然,到今天,我们还可以使用 aspect-ratio 设定图片的高宽比。 aspect-ratio CSS 属性为容器规定了一个期待的宽高比,这个宽高比可以用来计算自动尺寸以及为其他布局函数服务。...我们借助了 aspect-ratio 这个 CSS 中较新的属性来始终自动获得正确的宽高比,无论其父元素的宽度如何变化。...object-fit 避免图片拉伸 当然,限制高宽也会出现问题,譬如图片被拉伸了,非常的难看: 这个时候,我们可以借助 object-fit,它能够指定可替换元素的内容(也就是图片)该如何适应它的父容器的高宽...image-rendering: crisp-edges:必须使用可有效保留对比度和图像中的边缘的算法来对图像进行缩放,并且,该算法既不会平滑颜色,又不会在处理过程中为图像引入模糊。...object-fit:设定内容应该如何适应到其使用高度和宽度确定的框,避免图片拉伸 object-position:基于 object-fit,设置图片实际展示的 position 范围 image-rendering

    1.2K60

    让图片完美适应:掌握 CSS 的object-fit与object-position

    但正如我们所看到的,为了让 object-fit 发挥作用,我们首先需要在图像的内容框上定义一个与其自然大小不同的高度和宽度。...在下面的示例中,我们将图像的宽度和高度限制为100%,这样其内容框就与容器div的大小相匹配: img { width: 100%; height: 100%; } 图像及其内容框现在紧密地适应容器...使用 object-fit 将图像适应容器 object-fit 属性为我们提供了五个主要的关键字值,以确定我们的图像如何在其容器内显示。...结果与图像设置为宽度和高度为 100% 并包含在一个设置为 300px 乘300px 的 div 中的结果相同。...如何将像视频这样的元素适应到定义的区域(其中一些元素可能被隐藏)可能是一个值得讨论的问题,但毫无疑问,这里有可行的用例。

    96710

    深入了解CSS中的object-fit和background-size——CSS图片尺寸控制&应用场景

    我们并不总是能够为一个HTML元素加载不同大小的图像。如果我们使用的宽度和高度与图像的长宽比不成正比,图像可能会被压缩或拉伸。...如果图像的长宽比与为其指定的宽度和高度不同,那么结果将是一个被挤压或拉伸的图像。 我们在下图中看到了这一点。...解决办法 当图像的长宽比与包含元素的宽度和高度不一致时,我们并不总是需要添加一个不同大小的图像。在深入研究CSS解决方案之前,我想向你展示一下我们以前在照片编辑应用程序中是如何做到这一点的。...CSS object-fit object-fit属性定义了被替换的元素(如img或video)的内容应如何调整大小以适应其容器。object-fit的默认值是fill,这可能导致图像被挤压或拉伸。...如果是这样,那么你可能希望它占据其父本的全部宽度和高度。

    3.1K42

    IT课程 CSS基础 033_响应式布局

    响应式布局 响应式布局是一种能够适应不同屏幕尺寸和设备的网页设计方法。通过使用响应式布局,可以使网页在不同的设备上保持良好的显示效果,无论是在桌面电脑、平板电脑还是手机上。...媒体查询 使用 CSS 的媒体查询可以根据设备的特征(如屏幕宽度、高度、设备类型等)应用不同的样式。这使得你可以为不同的屏幕尺寸定义不同的布局。...示例: img { max-width: 100%; /* 图像最大宽度为其包含元素的100% */ height: auto; /* 保持宽高比,防止图像变形 */ } /* 在小屏幕上调整图像大小...,将文档放大到其预期大小的 100%,在移动端以你所希望的为移动优化的大小展示文档。...和视口元标签一起,你可以使用另外几个设定,但大体说来,上面那行就是你想要使用的。 initial-scale:设定了页面的初始缩放,我们设定为 1。 height:特别为视口设定一个高度。

    10410

    集乐-统一多媒体文件资源管理器-开发记录

    而避免这种问题的方式就是通过文件管理工具对我们收集的资源或文件进行统一管理。 理想的情况是我们在软件使用初期定义我们的行为习惯,后续我们只需要将所有文件统一化的保存,工具就会帮我们进行统一的管理。...这种管理方式在Calibre中就有所体现,我们在初次使用过程中定义电子书的保存地址,同时定义我们的元数据链接,后续我们在保存电子书的过程中就可以自动帮我们利用元数据链接(豆瓣,亚马逊等)获取电子书基本信息...瀑布流扩展功能: 通过功能键(CTRL+鼠标滚轮滑动)实现图片的放大缩小(主要在于调整图片的固定宽度计算图片新长度以及重新实现渲染图片过程) 懒加载,在滑动到图片位置前不加载图片以节省系统开销 <template...refreshImageHeight() { //刷新图片高度(用于在页面中通过CTRL+鼠标滚轮或滑动条动态调整图片宽度后进行图片高度的刷新) //由于在页面初始化中执行的...getImgHeight方法已经获取到了图片的真实高度, //所以在此处就只需要重新计算宽度修改过之后的长度缩放比例以及新的高度(避免了在刷新页面过程中使用异步方法) for (

    80630

    集乐-统一多媒体文件资源管理器-开发记录

    而避免这种问题的方式就是通过文件管理工具对我们收集的资源或文件进行统一管理。 理想的情况是我们在软件使用初期定义我们的行为习惯,后续我们只需要将所有文件统一化的保存,工具就会帮我们进行统一的管理。...这种管理方式在Calibre中就有所体现,我们在初次使用过程中定义电子书的保存地址,同时定义我们的元数据链接,后续我们在保存电子书的过程中就可以自动帮我们利用元数据链接(豆瓣,亚马逊等)获取电子书基本信息...瀑布流扩展功能: 通过功能键(CTRL+鼠标滚轮滑动)实现图片的放大缩小(主要在于调整图片的固定宽度计算图片新长度以及重新实现渲染图片过程) 懒加载,在滑动到图片位置前不加载图片以节省系统开销 <template...refreshImageHeight() { //刷新图片高度(用于在页面中通过CTRL+鼠标滚轮或滑动条动态调整图片宽度后进行图片高度的刷新) //由于在页面初始化中执行的...getImgHeight方法已经获取到了图片的真实高度, //所以在此处就只需要重新计算宽度修改过之后的长度缩放比例以及新的高度(避免了在刷新页面过程中使用异步方法) for (

    21610

    宽高比值

    import cv2 import numpy as np o=cv2.imread('C:/Users/xpp/Desktop/coins.png')#原始图像 cv2.imshow("original...THRESH_BINARY)#将灰度图片转换为二值图片 contours,hierarchy=cv2.findContours(binary,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)#计算图像轮廓...aspectRatio=float(w)/h#计算宽高比 print(aspectRatio) cv2.imshow("result",o) cv2.waitKey() cv2.destroyAllWindows...() 1.0476190476190477 算法:宽高比值来描述矩形轮廓,作为矩形轮廓的自身属性,也作为矩形轮廓所包围对象的特征,应用在步态识别、字符识别等领域。...矩形轮廓的宽高比为:宽高比=宽度/高度 aspectRatio=float(w)/h w表示矩形轮廓的宽度 h表示矩形轮廓的高度 注意:宽高比不是视频图像的宽度和高度之间的比率,而是矩形轮廓的宽度/高度的比值

    32210

    前端系列第3集-如何理解css盒子型?

    默认值是 content-box,表示盒子的宽度和高度只包括内容区域,不包括内边距、边框和外边距。而 border-box 表示盒子的宽度和高度包括内容区域、内边距、边框和外边距。...可以使用CSS的box-sizing属性来改变盒子模型的计算方式。将box-sizing设置为border-box可以将内边距、边框和外边距的宽度和高度计算到盒子的总宽度和高度中。... */   margin-left: -100px; /* 宽度的一半 */   background-color: #ccc; } 盒子的宽度和高度是如何计算的?...示例代码如下: .box {   width: 200px;   height: 100px;   overflow: auto; } 如何实现一个自适应宽度和固定高度的盒子,里面的图片自适应宽度,高度超过盒子大小时出现滚动条...可以使用CSS的max-width和overflow属性来实现一个自适应宽度和固定高度的盒子,里面的图片自适应宽度,高度超过盒子大小时出现滚动条。

    25410

    随方逐圆--全面理解CSS媒体查询

    定义和规范 媒体查询包含一个可选的媒体类型和零个或多个表达式, 根据媒体特性限制样式表的作用域....例如width, height, color等 CSS3中的媒体查询让内容的呈现可以根据设备进行变化, 而不需要改变内容本身 1.1 CSS2中的媒体查询 在CSS2中,媒体查询只使用于和...标签中,以media属性存在;media属性用于为不同的媒介类型规定不同的样式,而真正广泛使用的媒介类型是'screen'、'print'和'all' all 适合所有设备...(如可视区域的宽度或打印机纸盒的宽度)的宽度 height – 输出设备渲染区域(如可视区域的高度或打印机纸盒的高度)的高度 device-width – 输出设备的宽度(整个屏幕或页的高度,而不是仅是渲染区域...) device-height – 输出设备的高度(整个屏幕或页的高度,而不是仅是渲染区域) orientation – 设备处于横屏(宽度大于高度)模式还是竖屏(高度大于宽度)模式 aspect-ratio

    1.2K20

    详解瀑布流布局的5种实现及oject-fit属性,附源码

    设置宽或高 100% 因为图片其本身的独特性: 不设置宽高的情况下会按原有的尺寸显示在网页中。即有多大,显示多大。 在非等比缩放的情况下会被拉伸变形。 设置宽度或者高度时,会保持原宽高比进行缩放。...object-fit CSS3 的 object-fit 属性是用来指定「可替换元素」的内容是如何适应到容器中的。它的值有 5 种。...看到上面你实现的思路是什么?可以思考几秒,接下来一起来看这些实现方式中有没有和你一思路一样的。 思路1. JS 计算列数 关键思路: 首先设置列宽度,然后计算能够展示的列数。 向每一列中添加图片。...JS计算缩放 首先给定一个基准高度 图片获取基准高度下的宽度,然后计算每一行能够放入多少张 此时每一行图片肯定会小于容器宽度,然后这一行进行缩放到容器大小。在重新计算放大后的高度。...当然,案例中其实还有很多细节没有处理,比如浏览器窗口发上变化时重新加载图片会发生闪动该如何优化体验?小伙伴们不妨自己去尝试进行优化。动手实践是掌握技能的重要手段。

    1.3K20
    领券