Cropper.js进阶之固定宽高图片裁切实现示例

 更新时间:2023年05月06日 15:00:29   作者:MerkleJqueryRu  
这篇文章主要为大家介绍了Cropper.js进阶之固定宽高图片裁切实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

在图像处理中,图片裁切是常见的需求。有时候,我们希望裁切后的图片具有固定的宽高,而不是任意宽高比。Cropper.js 是一个强大的前端图片裁剪库,可以帮助我们轻松实现这个功能。在本教程中,我们将学习如何使用 Cropper.js 实现固定宽高的图片裁切。

准备工作

首先,我们需要在 HTML 文件中引入 Cropper.js 的 CSS 和 JS 文件。可以从 CDN 引入,如下所示:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.11/cropper.min.css" rel="external nofollow"  rel="external nofollow" >
<script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.11/cropper.min.js"></script>

页面结构

接下来,我们创建一个简单的 HTML 结构,包括一个用于显示原始图片的<img>元素,一个裁切按钮,以及一个用于显示裁切结果的<img>元素。

<div>
  <img src="https://p1.ssl.qhimg.com/t019228fc2ed5df1aa8.jpg" id="image">
</div>
<button onclick="split()"> 裁剪 </button>
<div>
  <img id="cropped-result">
</div>

为了实现固定宽高的图片裁切,我们需要计算宽高比。以下是创建 Cropper.js 实例的 JavaScript 代码:

编写JavaScript

var image = document.getElementById('image');
var fixedWidth = 300; // 设置裁剪结果的固定宽度
var fixedHeight = 200; // 设置裁剪结果的固定高度
var aspectRatio = fixedWidth / fixedHeight; // 计算宽高比
// 创建 Cropper 实例,设置宽高比,禁止移动和缩放裁剪框,禁止重新框选选取
var cropper = new Cropper(image, {
  aspectRatio: aspectRatio,
  cropBoxResizable: false, // 禁止用户调整裁剪框的宽高
  zoomable: false, // 禁止缩放图片
  dragMode: 'none' // 禁止重新框选选取
});

当用户点击“裁剪”按钮时,我们需要获取裁剪结果,并将其显示在另一个<img>元素中。

function split() {
  // 获取裁剪结果(返回裁剪后的图像数据)
  var croppedData = cropper.getCroppedCanvas({
    width: fixedWidth,
    height: fixedHeight
  }).toDataURL('image/jpeg');
  // 将裁剪结果显示在另一个元素中 
  var resultElement = document.getElementById('cropped-result'); 
  resultElement.src = croppedData; 
}

现在,当用户点击“裁剪”按钮时,裁剪后的图片将以固定的宽度和高度显示在页面上。

总结:

在本教程中,我们学习了如何使用 Cropper.js 库实现固定宽高的图片裁切。我们创建了一个 Cropper.js 实例,设置了宽高比,同时禁止了用户调整裁剪框的宽高、缩放图片和重新框选选取。这使得我们能够实现一个简单而强大的图片裁切工具,以满足特定宽高的需求。Cropper.js 提供了许多其他选项和方法,你可以根据实际需求对其进行定制。希望本教程对你有所帮助!

全部代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>图片裁剪工具</title>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.11/cropper.min.css" rel="external nofollow"  rel="external nofollow" >
  <style>
    img {
      width: 800px; 
      height: 500px;
    }
  </style>
</head>
<body>
  <div>
    <img src="https://p1.ssl.qhimg.com/t019228fc2ed5df1aa8.jpg" id="image">
  </div>
  <button onclick="split()"> 裁剪 </button>
  <div>
    <img id="cropped-result">
  </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/cropperjs/1.5.11/cropper.min.js"></script>
  <script>
    var image = document.getElementById('image');
    var fixedWidth = 300; // 设置裁剪结果的固定宽度
    var fixedHeight = 200; // 设置裁剪结果的固定高度
    var aspectRatio = fixedWidth / fixedHeight; // 计算宽高比
    // 创建 Cropper 实例,设置宽高比,禁止移动和缩放裁剪框,禁止重新框选选取
    var cropper = new Cropper(image, {
      aspectRatio: aspectRatio,
      cropBoxResizable: false, // 禁止用户调整裁剪框的宽高
      zoomable: false, // 禁止缩放图片
      dragMode: 'none' // 禁止重新框选选取
    });
    function split() {
      // 获取裁剪结果(返回裁剪后的图像数据)
      var croppedData = cropper.getCroppedCanvas({
        width: fixedWidth,
        height: fixedHeight
      }).toDataURL('image/jpeg');
      // 将裁剪结果显示在另一个元素中
      var resultElement = document.getElementById('cropped-result');
      resultElement.src = croppedData;
    }
  </script>
</body>
</html>

以上就是Cropper.js进阶之固定宽高图片裁切实现示例的详细内容,更多关于Cropper.js固定宽高图片裁切的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Js模块化的作用原理和方案

    详解Js模块化的作用原理和方案

    这篇文章主要介绍了Js模块化的作用原理和方案,对JS模块化感兴趣的同学,可以参考下
    2021-04-04
  • Ionic快速安装教程

    Ionic快速安装教程

    Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架。通过 SASS 构建应用程序,它 提供了很多 UI 组件来帮助开发者开发强大的应用。接下来小编给大家介绍如何安装 Ionic 在自己的电脑上搭建一个简单的小应用,感兴趣的朋友一起看看吧
    2016-06-06
  • 详解JavaScript中的类型判断与类型转换

    详解JavaScript中的类型判断与类型转换

    这篇文章主要给大家讲解一下JavaScript中的类型判断与类型转换的基本概念和使用方法,对我们的学习JavaScript的类型判断与转换有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • js中的DOM模拟购物车功能

    js中的DOM模拟购物车功能

    本篇文章主要介绍了js中的DOM模拟购物车功能的示例代码。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 微信小程序实现简单手写签名组件的方法实例

    微信小程序实现简单手写签名组件的方法实例

    在使用微信的时候,为方便我们发送文件可以直接在上面进行手写签名,这篇文章主要给大家介绍了关于利用微信小程序实现简单手写签名组件的相关资料,需要的朋友可以参考下
    2021-07-07
  • 使用apply方法实现javascript中的对象继承

    使用apply方法实现javascript中的对象继承

    javascript中的对象继承的方法有很多,在接下来的文章中为大家介绍下使用apply方法是如何实现的
    2013-12-12
  • 基于HTML5+JS实现本地图片裁剪并上传功能

    基于HTML5+JS实现本地图片裁剪并上传功能

    这篇文章主要为大家详细介绍了HTML5本地图片裁剪并上传的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • js和jquery实现监听键盘事件示例代码

    js和jquery实现监听键盘事件示例代码

    这篇文章主要为大家介绍了js实现监听键盘事件示例代码,监听键盘组合键CTRL+C,以便做出对应的响应,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • js异或加解密效果代码

    js异或加解密效果代码

    比较不错的js异或加解密实例代码,方便学习js加解密的朋友
    2008-06-06
  • js修改input的type属性及浏览器兼容问题探讨与解决

    js修改input的type属性及浏览器兼容问题探讨与解决

    js修改input的type属性有些限制,今天遇到个问题一开始的时候,input的类型是text,后来变成了password类型。直观的思路是用js修改input的type类型。但ie下这么做不可行,所以只能换个思路感兴趣的朋友可以了解下
    2013-01-01

最新评论