首页
学习
活动
专区
工具
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)。 使用宽高比可以让浏览器计算显示图像所需空间 - 从而减少布局偏移风险。

85920

如何在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)相比,宽度高度动态范围更小。因此,回归目标的高度宽度将变得更容易优化问题。

    65020

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

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

    78110

    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

    25.6K54

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

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

    1.6K30

    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.264H.265,使用了块为基础编码方法。这些块通常是宽度高度都是2倍数矩形(例如,4x4, 8x8, 16x16等)。...当编码器处理视频帧时,如果帧宽度高度是奇数,将不能够将图像完整地分割成标准块,这可能会导致编码过程中出现问题。例如,如果有一个奇数宽度视频帧,最右边会有一个无法形成完整块列像素。...在ffmpegscale 参数,可以使用 -1 -2 这样来等比例缩放视频大小,但二者略有差异,建议使用-2不是-1,之前我们就是使用了-1才出现问题,二者具体差异如下: -1 在 scale...过滤器中用作自动计算宽度高度占位符,同时保持源视频宽高比不变。

    11910

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

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

    67510

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

    当然,到今天,我们还可以使用 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

    深入了解CSSobject-fitbackground-size——CSS图片尺寸控制&应用场景

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

    3K42

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

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

    9710

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

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

    79730

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

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

    20610

    宽高比

    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表示矩形轮廓高度 注意:宽高比不是视频图像宽度高度之间比率,而是矩形轮廓宽度/高度比值

    32010

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

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

    24810

    随方逐圆--全面理解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.2K20
    领券