Jquery - 如何裁剪图像并将其缩放为与原始图像相同的大小

2023-11-29

我想通过给出(xAxis,yAxis,Height,Width)从原始图像中裁剪图像。

small image of red panda

所有裁剪后的图像应与下面的框一样大

[enter image description here2

并将裁剪后的部分设置为固定大小,这样无论用户给出的高度和宽度如何,我都可以在网络上有序地显示这些裁剪后的图像。

我尝试使用 jrac,但是它要求我在使用标签显示之前保存裁剪后的图像。我还尝试使用纯 css 来完成此操作。

.crop {
    width: 200px;
    height: 150px;
    overflow: hidden;
}

.crop img {
    width: 400px;
    height: 300px;
    margin: -75px 0 0 -100px;
}

然而,CSS 裁剪图像的想法只是隐藏图像的其他部分,如果我将其大小调整为原始图像。另一部分再次出现。我想知道这样做的好方法是什么?


CSS IMG 填充容器宽度/高度。识别 IMG 纵横比。

编辑:我不得不放弃使用图像方向的想法。纵横比更有意义。

这可行 - 图片来自维基媒体。一是垂直的,二是水平的。它们居中并适合宽度/高度。 我必须改变$(document).ready() to $(window).on("load")- 因为文档就绪只等待 HTML DOM 完全加载,但如果尚未下载图像,它会错误地识别 img 尺寸及其长宽比(EDIT) .

Overflowing Aspect ratio demonstration

  • jQuery 仅用于确定图像长宽比

  • CSS 将图像置于容器元素内并调整其大小 根据与容器相比的长宽比。

  • 裁剪只需通过容器即可完成overflow:hidden

$(window).on("load",function() {//wait for images to be loaded
  $(".crop img").each(function() {//loop through images to be cropped
    if (($(this).width()/$(this).height()) < ($(this).parent().width()/$(this).parent().height()))//compare Aspect ratio
      $(this).addClass("taller");
  });
});
body{padding:0;margin:0;}
.crop {
  position: relative;
  display:inline-block;
  width: 200px;
  height: 150px;
  overflow: hidden;
  /*hide "crop" overflowing parts of images*/
  border:1px solid #000;
}

.crop img {
  position: relative;
  box-sizing: border-box;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /*center the overflowing element*/
  width: auto;
  height: 100%;
  /*Fit to height, overflow horizontally*/
  border:2px dashed red;
  /*highlight img borders for demonstration*/
}

.crop img.taller{
  width: 100%;
  height: auto;
  /*Fit to width, overflow vertically*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="crop">
   <img src="https://upload.wikimedia.org/wikipedia/commons/8/82/Tyndall_Effect_seen_in_Nature.jpg">
</span>
<span class="crop">
   <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/WolayerSee.jpg/800px-WolayerSee.jpg">
</span>
<span class="crop" style="height:80px;">
   <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/81/WolayerSee.jpg/800px-WolayerSee.jpg">
</span>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jquery - 如何裁剪图像并将其缩放为与原始图像相同的大小 的相关文章

  • jQuery 如何通过不同的列值计算表中的行数

    如何按表列计算不同的表行 Example table thead tr th NAME th th TECHNOLOGY th tr thead tbody tr td john td td jQuery td tr tr td mark
  • CSS 属性名称中的“font-”与“text-”

    CSS 属性名称中使用的术语 文本 和 字体 有什么区别 它们的含义是否相同 或者以以下开头的 CSS 属性名称之间是否存在语义差异font 和一个开头text 例如 为什么我们有这些 CSS 属性 font size 34px text
  • 如何更改 Vuetify 日历日期格式

    我正在尝试在以下 Vuetify 日历上启用输入事件 https github com vuetifyjs vuetify blob master packages docs src examples calendars complex e
  • 'DOMException:使用'option:selected'选择器时无法在'Element'上执行'querySelectorAll'

    我正在运行一个页面 该页面在以下行中引发错误 var label select find option selected html select find option first html 为了完整起见 这里是完整的 jQuery 函数
  • 如何在 Next.js 中正确使用 Mongoose 模型?

    我正在使用 TypeScript 和 MongoDB Mongoose 构建 Next js 应用程序 我在使用 Mongoose 模型时开始遇到错误 这导致它们在每次使用模型时都尝试覆盖模型 导致模型覆盖错误的代码 import mong
  • 如何使用 Angular CLI 添加应用程序范围的 CSS 文件?

    我想向我的 Angular 2 应用程序添加一些分片样式 例如字体和配色方案等将在任何地方使用的东西 过去 我总是通过在索引页面添加这样的标签来完成此操作 这不适用于 CLI 用于为应用程序提供服务的任何内容 我尝试在构建后手动将 css
  • javascript 中一次仅选中一个复选框

    I have 3复选框 我只想1一次选中的复选框 下面是我的 html 小提琴 JS小提琴 https jsfiddle net n03jLhqa 我想要这个工作在IE8还请建议如何做 这个怎么样 fiddle http jsfiddle
  • 调用不带括号的 javascript 函数

    以下 renderChat 函数用于将消息和图像渲染到聊天板上 该函数内部还有另一个函数 var onComplete function 它完成创建列表元素并将其附加到聊天列表的所有工作 onComplete函数之后就只有这三行代码 img
  • Bootstrap 3 - 模态背景不会根据模态对话框的高度调整大小?

    我将一个表单放入模式中 并尝试在用户触发单选按钮时显示表单的一些隐藏字段 显示隐藏字段后 模态自动重新缩放的高度 但模态背景的高度不能用作模态对话框 我该如何解决它 div class modal fade div class modal
  • 按钮导致页面重新加载

    我在我的页面上使用 html 和 jquery 在我的 html 中 我有一个按钮 单击该按钮将触发一个功能 当页面加载时 我调用文档准备中的主函数 这是我的代码 div div
  • 加载 angularjs 路由后运行 javascript 代码

    我需要在 angularjs 加载路线后显示警报 显示警报的代码位于 angularjs 异步加载的视图中 视图加载后 我希望它能够运行 但它没有 我知道我可以广播并告诉它稍后运行等 但我需要一个更通用的解决方案 假设您正在谈论基于以下内容
  • onClick 事件适用于触摸屏设备上的触摸吗?

    我用过onclick我的网站上的活动 但是 当我在谷歌浏览器的开发人员模式移动视图中打开它时 触摸使用鼠标单击的元素没有任何反应 所以我的问题是 我还必须添加吗ontouch事件连同onclick事件或 onClick 事件适用于所有触摸屏
  • Firefox 和 Chrome 为 offsetTop 提供了不同的值

    我试图相对于输入字段定位一个跨度元素 让我们称之为 工具提示跨度 为此 我将工具提示跨度和输入字段包装在另一个跨度元素中 我们称之为 包装器跨度 该元素具有position relative 然后我设置position absolute在工
  • 如何从 HTML 中的列数据而不是行数据创建表格?

    根据这篇文章W3学校 http www w3schools com html html tables asp 可以像这样在 HTML 中创建一个基本表格 table border 1 tr td row 1 cell 1 td td row
  • 隔离必需的字段验证器?

    我在页面上有两个搜索按钮 一个链接到下拉列表 另一个链接到带有文本框的下拉列表以获取更多搜索条件 我在所有上述控件上都需要现场验证器 当我从第一个下拉列表中选择某些内容并单击相应的搜索按钮时 文本框的字段验证器会触发 从而禁用第一个搜索按钮
  • Bootstrap - 为反向行模式创建移动自适应

    我想用 Bootstrap 创建一个反向效果 第一行 左边是文字 右边是图像 第二行 左边是图片 右边是文字 第三行 左边是文字 右边是图片 第四行 左边是图片 右边是文字 而且这种情况一直持续下去 它在大型设备上看起来非常漂亮 但当它在设
  • 使用 BASH 和 AWK 创建 HTML 表

    我在创建 html 表来显示文本文件中的统计信息时遇到问题 我确信有 100 种方法可以做得更好 但这里是 以下脚本中的注释显示了输出 bin bash function getapistats curl s http api exampl
  • 处理延迟对象数组

    自从使用 Deferred我已经遇到过这种情况几次 我有一个值列表 每个值都以某种方式生成一个延迟对象 并且我想在所有延迟对象都解析后执行回调 一个更具体的例子是这样的 var urls foo com bar com baz com qu
  • javascript:获取带有单位的CSS prop值[重复]

    这个问题在这里已经有答案了 我的代码是这样的 image 1 position absolute top 3vw 我的尝试 http jsfiddle net z8k6t3fb 1 http jsfiddle net z8k6t3fb 1
  • 使用 Three.js 中的设备方向控件进行对象旋转

    我正在迈出使用 JavaScript 进行编码并使用 Three js 的第一步 我正在尝试 Threejs org 的这个例子 http trijs org examples misc controls deviceorientation

随机推荐

  • Git:仅在将外部分支合并到主分支时防止快进合并

    为了方便查看功能分支何时合并到 master 可以使用 Git 的 no ff将其功能分支合并到主分支时的选项 无需键入即可完成此操作的一种方法 no ff是完全禁用快进合并到 master 中 git config branch mast
  • HTML5画布颜料混合颜色工具

    你好 我需要创建混合颜色工具 我尝试从画布中获取颜色像素getImageData并与我选择的颜色混合并获得平均颜色 我可以轻松获得它 r1 red channel from getImageData g1 green channel fro
  • 从 WP_Query 中排除 WooCommerce 产品类别

    我将以下参数定义为查询的一部分 args apply filters woocommerce related products args array post type gt product author gt artist post st
  • 使用 AutoMapper 的集成测试无法初始化配置

    框架和包 NETCoreApp 1 1 Xunit 2 2 0 AutoMapper 6 0 2 Microsoft AspNetCore TestHost 1 1 1 Microsoft NET Test Sdk 15 0 0 集成测试
  • Android:无法播放mp4视频

    我正在尝试玩mp4 视频流使用本机从服务器视频查看 遗憾的是我不断收到 无法播放视频 error 奇怪的是 同一个视频在 Froyo 上播放得很好 但在 HoneyComb 上却无法播放 我用 MX Video Player 在 HC 上
  • Java邮件性能

    我一直在使用 javamail 从 IMAP 服务器 当前是 GMail 检索邮件 Javamail 非常快地从服务器检索特定文件夹中的消息列表 仅 ID 但当我实际获取消息 仅信封 甚至不包含内容 时 每条消息大约需要 1 到 2 秒 快
  • Oracle 的 Sonarqube Web UI 配置文件管理速度很慢

    在虚拟化环境 生产 上安装带有 Oracle 的 SonarQube 与具有相同发行版的其他安装相比 配置文件管理非常慢 当许多配置文件在此架构 虚拟化 Linux Oracle 上使用时 我将不胜感激有关此功能的响应时间的一些反馈 下面的
  • nextjs POSt API 无法在实时环境中工作,但在本地工作完美

    我最近开始学习使用 Nextjs 构建 Web 应用程序 因此我决定构建一个简单的应用程序来玩弄和学习 我在本地开发 一切都很完美 但是 当我部署到 vercel 时 POST 功能不起作用 该应用程序非常简单 它在主页上显示一些数据 并且
  • 计算大数的方差

    我还没有真正使用过方差计算那么多 而且我不太知道会发生什么 事实上我的数学一点也不好 我有一个包含 1000000 个 0 10000 范围内的随机数值的数组 该数组可能会变得更大 因此我使用 64 位 int 进行求和 我试图找到有关如何
  • ReactJS:[Home] 不是 组件。 的所有子组件都必须是

    单击 开始测验 按钮时 我试图导航到 quiz 但是 当我编译代码时 我在网站应用程序上收到以下错误 Home is not a
  • Android、OpenGLES、CmdLine 工具,获取 MainDisplay 分辨率

    环境 Windows x64 主机 Android 5 0 USB 连接到 Windows 机器 三星盖乐世 5 可视化GDB OpenGL v1 4 ADB CmdLine 工具 gt 本机 C 无 Java Use case 实现一个提
  • 多态对象的 JSON 使用者

    我正在解析 JSON 并且很难理解一种可以具有三种形式之一的结构 就我而言 它可以是零维 一维或二维 有什么方法可以即时检查 JSON 以确定它是哪一个吗 或者也许无论如何都要吃掉它 然后再弄清楚它是什么 这些结构看起来像这样 并且可以嵌入
  • R 将逗号分隔的单元格分成行和笛卡尔积

    I have mydf下面的数据框 我想拆分包含逗号分隔数据的任何单元格并将其放入行中 我正在寻找类似于的数据框y以下 我怎样才能通过几个步骤有效地完成它 目前我正在使用cSplit一次在一列上运行 I tried cSplit mydf
  • SKTextureAtlas 中的 SKTexture 是否支持 mipmap 功能?

    来自苹果文档 只有当两个纹理的尺寸都是 2 的幂时 您才能请求 mipmap 然而 目前尚不清楚 SKTextureAtlas 中的 SKTexture 是否也支持此功能 因为它们本质上有点不同 我问这个问题是因为实际上很难从结果中看出是否
  • 重载方法调用问题

    请让我知道 重载是编译时多态性 它考虑调用该方法的引用变量 假设如果我们有参数重载方法 那么将调用哪个重载方法将由我们调用方法的参数或对象抛出决定 请在下面找到我的代码 package com overload class Bird pub
  • 如何以及在哪里设置 MAXRECURSION 选项?

    我有一个查询耗尽了默认值MAXRECURSION限制为 100 给出以下错误消息 声明终止 在语句完成之前 最大递归次数 100 已用完 我发现我需要使用以下方法提高此 CTE 的限制OPTION MAXRECURSION xxx 但我不知
  • 如何获取使用 Windows.Services.Store 命名空间在 Windows 10 应用商店中发布的应用程序的试用许可证的到期日期?

    我有一个转换后的 Win32 应用程序发布在 Windows 10 应用商店中的试用许可证 我正在使用 C WRT 版本这段代码检索应用程序许可证信息 但由于某种原因截止日期成员IStoreAppLicense总是返回为9999 12 31
  • 如何在谷歌地图上动态绘制折线

    我无法在谷歌地图上绘制折线 我动态获取该值 var flightPlanCoordinates n new google maps LatLng q var flightPlanCoordinates new Array for i 0 i
  • CefSharp自定义SchemeHandler

    我使用 CefSharp 的 SchemeHandler 来从我的 C 项目中获取资源 例如 css js or png例如使用自定义 url 的文件custom cefsharp assets css style css 我有 2 个自定
  • Jquery - 如何裁剪图像并将其缩放为与原始图像相同的大小

    我想通过给出 xAxis yAxis Height Width 从原始图像中裁剪图像 所有裁剪后的图像应与下面的框一样大 2 并将裁剪后的部分设置为固定大小 这样无论用户给出的高度和宽度如何 我都可以在网络上有序地显示这些裁剪后的图像 我尝