【JavaScript脚本宇宙】深入解析六大图像裁剪库:帮你找到最佳选择

图像裁剪新纪元:从基础到进阶的六大解决方案

前言

随着数字化内容的爆炸式增长,图像编辑和裁剪功能已成为多个应用程序中的核心需求。无论是社交媒体平台、电子商务网站还是个人博客,能够快速、方便地裁剪和调整图像以适应不同需求的重要性不言而喻。本文将介绍六款流行的图像裁剪库,它们各具特色,适用于不同的开发需求和场景。

欢迎订阅专栏:JavaScript脚本宇宙

文章目录

  • 图像裁剪新纪元:从基础到进阶的六大解决方案
    • 前言
  • 图像裁剪库
    • 1. Cropper.js:一个用于图像裁剪的JavaScript库
      • 1.1 概述
      • 1.2 主要特性
        • 1.2.1 特性一
        • 1.2.2 特性二
      • 1.3 使用示例
      • 1.4 使用场景
        • 1.4.1 头像上传
        • 1.4.2 图片编辑工具
        • 1.4.3 电商平台商品图片管理
    • 2. Croppie:一个简单的图像裁剪库
      • 2.1 概述
      • 2.2 主要特性
        • 2.2.1 特性一:支持多种操作
        • 2.2.2 特性二:高自定义性
      • 2.3 使用示例
      • 2.4 使用场景
    • 3. Jcrop:一个基于jQuery的图像裁剪插件
      • 3.1 概述
      • 3.2 主要特性
        • 3.2.1 特性一
        • 3.2.2 特性二
      • 3.3 使用示例
      • 3.4 使用场景
    • 4. ImgAreaSelect:一个轻量级的图像选择和裁剪jQuery插件
      • 4.1 概述
      • 4.2 主要特性
        • 4.2.1 特性一
        • 4.2.2 特性二
      • 4.3 使用示例
      • 4.4 使用场景
        • 4.4.1 头像裁剪
        • 4.4.2 在线图片编辑
    • 5. DarkroomJS:一个开源的照片编辑器,带有裁剪功能
      • 5.1 概述
      • 5.2 主要特性
        • 5.2.1 多种编辑工具
        • 5.2.2 自定义插件
      • 5.3 使用示例
      • 5.4 使用场景
    • 6. Pintura Image Editor:一个现代化的图像编辑器,支持裁剪等多种功能
      • 6.1 概述
      • 6.2 主要特性
        • 6.2.1 特性一:高效的图像处理能力
        • 6.2.2 特性二:友好的用户界面
      • 6.3 使用示例
      • 6.4 使用场景
        • 6.4.1 用户头像裁剪
        • 6.4.2 在线图片编辑工具
    • 总结

图像裁剪库

1. Cropper.js:一个用于图像裁剪的JavaScript库

1.1 概述

Cropper.js 是一个功能强大的JavaScript库,用于在网页上实现图像裁剪。该库不仅支持基本的裁剪功能,还具备各种高级特性,能够满足不同场景下的需求。

官方网站:Cropper.js

1.2 主要特性

1.2.1 特性一

实时预览:Cropper.js提供了实时图像处理预览功能,可以让用户在拖动和调整裁剪框时即时看到效果。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Cropper.js 示例</title><link rel="stylesheet" href="https://unpkg.com/cropperjs/dist/cropper.min.css">
</head>
<body><img id="image" src="example.jpg" alt="Example Image"><script src="https://unpkg.com/cropperjs"></script><script>const image = document.getElementById('image');const cropper = new Cropper(image, {aspectRatio: 16 / 9,crop(event) {console.log(event.detail.x);console.log(event.detail.y);console.log(event.detail.width);console.log(event.detail.height);console.log(event.detail.rotate);console.log(event.detail.scaleX);console.log(event.detail.scaleY);},});</script>
</body>
</html>
1.2.2 特性二

多种裁剪框比例:Cropper.js允许设置裁剪框的宽高比例(例如 4:3 或 16:9),方便用于不同应用场景,例如头像裁剪或视频缩略图裁剪。

const cropper = new Cropper(image, {aspectRatio: 4 / 3,viewMode: 1,
});

1.3 使用示例

以下是一个完整的使用示例,展示了如何在网页中集成Cropper.js并实现图像裁剪功能:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Cropper.js 示例</title><link rel="stylesheet" href="https://unpkg.com/cropperjs/dist/cropper.min.css">
</head>
<body><div><img id="image" src="example.jpg" alt="Example Image"></div><button id="cropButton">裁剪</button><canvas id="resultCanvas"></canvas><script src="https://unpkg.com/cropperjs"></script><script>const image = document.getElementById('image');const cropButton = document.getElementById('cropButton');const resultCanvas = document.getElementById('resultCanvas');let cropper;image.onload = () => {cropper = new Cropper(image, {aspectRatio: 16 / 9,viewMode: 1,});};cropButton.onclick = () => {const croppedCanvas = cropper.getCroppedCanvas();resultCanvas.getContext('2d').drawImage(croppedCanvas, 0, 0);};</script>
</body>
</html>

1.4 使用场景

Cropper.js适用于各种需要图像裁剪的场景,包括但不限于:

1.4.1 头像上传

用户在上传头像时,可以使用Cropper.js来裁剪图片,以确保上传的头像符合系统要求的尺寸和比例。

1.4.2 图片编辑工具

在网页的图片编辑工具中集成Cropper.js,用户可以对图片进行裁剪、旋转等操作,提升用户体验。

1.4.3 电商平台商品图片管理

电商平台的商品图片通常需要特定的尺寸,使用Cropper.js裁剪图片,可以确保展示给用户的图片美观且一致。

通过上述步骤和代码示例,你可以轻松在你的项目中集成Cropper.js,实现强大的图像裁剪功能。更多详细信息和文档,请访问Cropper.js官方网站。

2. Croppie:一个简单的图像裁剪库

Croppie 是一个强大的图像裁剪库,它提供了丰富的功能和高度的自定义能力,适用于各种网页应用场景。它支持缩放、旋转等操作,可以非常方便地嵌入到你的项目中。

2.1 概述

Croppie 是一个开源的 JavaScript 图像裁剪库,旨在简化图像裁剪任务。它提供了一套易于使用的 API,并且支持多种图像操作功能,如缩放、旋转、移动和裁剪。

Croppie 官网

2.2 主要特性

2.2.1 特性一:支持多种操作

Croppie 支持用户对图像进行多种操作,包括缩放、旋转、移动和裁剪。这些操作可以灵活地组合使用,以实现复杂的图像处理需求。

2.2.2 特性二:高自定义性

Croppie 提供了丰富的配置选项,用户可以根据自己的需求自定义裁剪区域的大小、形状,以及裁剪框的样式。此外,还可以设置一些高级选项,例如裁剪结果的格式和质量。

2.3 使用示例

以下是一个使用 Croppie 进行图像裁剪的完整示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Croppie 示例</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/croppie/2.6.5/croppie.min.css">
</head>
<body><div id="crop-container"></div><button id="crop-button">裁剪</button><img id="result" src="" alt="裁剪结果"><script src="https://cdnjs.cloudflare.com/ajax/libs/croppie/2.6.5/croppie.min.js"></script><script>// 初始化 Croppievar el = document.getElementById('crop-container');var cropInstance = new Croppie(el, {viewport: { width: 200, height: 200 },boundary: { width: 300, height: 300 },showZoomer: true,});// 加载图像cropInstance.bind({url: 'https://via.placeholder.com/500'});// 裁剪按钮点击事件document.getElementById('crop-button').addEventListener('click', function() {cropInstance.result({type: 'canvas',size: 'viewport'}).then(function(croppedImage) {document.getElementById('result').src = croppedImage;});});</script>
</body>
</html>

2.4 使用场景

Croppie 常被用于以下场景:

  • 头像裁剪:允许用户上传并裁剪个人头像。
  • 图像编辑器:集成到图片编辑工具中,用于裁剪图片的特定部分。
  • 电商平台:帮助用户上传和裁剪产品图片,以便展示更精确的商品细节。

3. Jcrop:一个基于jQuery的图像裁剪插件

3.1 概述

Jcrop是一个功能强大的图像裁剪插件,基于jQuery开发,能够方便地在网页上实现对图像的选择、裁剪操作。它可以用于头像裁剪、图片编辑等场景,让用户对图像进行灵活的裁剪。

官网链接: Jcrop

3.2 主要特性

3.2.1 特性一
  • 自适应大小: Jcrop支持根据容器大小自动调整裁剪框大小,确保裁剪效果的一致性。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Jcrop Example</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/css/jquery.Jcrop.min.css">
</head>
<body><img src="example.jpg" id="target" alt="Image for cropping"><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/js/jquery.Jcrop.min.js"></script><script>$(function() {$('#target').Jcrop({aspectRatio: 1,setSelect: [100, 100, 400, 400]});});</script>
</body>
</html>
3.2.2 特性二
  • 实时预览: Jcrop提供实时预览功能,使用户在裁剪过程中可以看到裁剪后的效果,提升用户体验。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Jcrop Preview</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/css/jquery.Jcrop.min.css">
</head>
<body><img src="example.jpg" id="target" alt="Image for cropping"><div style="width: 100px; height: 100px; overflow: hidden;"><img src="example.jpg" id="preview" style="max-width: none;"></div><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/js/jquery.Jcrop.min.js"></script><script>$(function() {function updatePreview(c) {if (parseInt(c.w) > 0) {var rx = 100 / c.w;var ry = 100 / c.h;$('#preview').css({width: Math.round(rx * $('#target').width()) + 'px',height: Math.round(ry * $('#target').height()) + 'px',marginLeft: '-' + Math.round(rx * c.x) + 'px',marginTop: '-' + Math.round(ry * c.y) + 'px'});}}$('#target').Jcrop({aspectRatio: 1,onChange: updatePreview,onSelect: updatePreview});});</script>
</body>
</html>

3.3 使用示例

以下是如何在网页中集成Jcrop进行��像裁剪的完整示例,包括HTML、CSS和JavaScript代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Jcrop Full Example</title><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/css/jquery.Jcrop.min.css"><style>#preview-pane {display: inline-block;position: relative;width: 200px;height: 200px;overflow: hidden;}#preview-container {display: inline-block;}</style>
</head>
<body><div id="preview-container"><img src="example.jpg" id="target" alt="Image for cropping"><div id="preview-pane"><img src="example.jpg" id="preview" style="max-width: none;"></div></div><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.12/js/jquery.Jcrop.min.js"></script><script>$(function() {function updatePreview(c) {if (parseInt(c.w) > 0) {var rx = 200 / c.w;var ry = 200 / c.h;$('#preview').css({width: Math.round(rx * $('#target').width()) + 'px',height: Math.round(ry * $('#target').height()) + 'px',marginLeft: '-' + Math.round(rx * c.x) + 'px',marginTop: '-' + Math.round(ry * c.y) + 'px'});}}$('#target').Jcrop({aspectRatio: 1,onChange: updatePreview,onSelect: updatePreview});});</script>
</body>
</html>

3.4 使用场景

Jcrop在各种需要图像裁剪的场景中都非常有用,特别是在以下场景中表现突出:

  • 用户头像裁剪: 用户上传头像后,可以使用Jcrop进行裁剪,确保头像显示合适的部分。
  • 图像编辑工具: 在在线图像编辑工具中,允许用户自由裁剪图像,以便进一步处理或下载。

通过Jcrop,开发者可以轻松为用户提供友好的图像裁剪功能,提高用户体验。

4. ImgAreaSelect:一个轻量级的图像选择和裁剪jQuery插件

4.1 概述

ImgAreaSelect 是一个非常轻量级的jQuery插件,用于选择和裁剪图像。它允许用户在页面上对图像进行区域选择,然后可以进一步处理选定的图像部分,适用于头像裁剪、图片编辑等功能。

官网链接:ImgAreaSelect

4.2 主要特性

4.2.1 特性一

支持多种裁剪比例和模式,能够灵活设置裁剪框的大小和位置。

4.2.2 特性二

提供丰富的回调函数,可以在用户操作图像时执行自定义逻辑,如实时预览裁剪结果。

4.3 使用示例

以下是一个基本的使用示例,展示如何在网页上应用 ImgAreaSelect 插件来选择和裁剪图像。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>ImgAreaSelect 示例</title><link rel="stylesheet" href="http://odyniec.net/projects/imgareaselect/css/imgareaselect-default.css"><style>img { max-width: 100%; }</style>
</head>
<body><img id="target" src="https://via.placeholder.com/500" alt="示例图像"><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="http://odyniec.net/projects/imgareaselect/jquery.imgareaselect.pack.js"></script><script>$(function () {$('#target').imgAreaSelect({aspectRatio: '1:1',handles: true,onSelectEnd: function (img, selection) {console.log(`X: ${selection.x1}, Y: ${selection.y1}`);console.log(`Width: ${selection.width}, Height: ${selection.height}`);}});});</script>
</body>
</html>

在这个示例中,我们加载了 jQuery 和 ImgAreaSelect 插件,并且在一个图像元素上初始化了 ImgAreaSelect 插件。裁剪框的宽高比被设置为 1:1,用户可以调整裁剪框的大小和位置,同时在选中结束时输出选区的坐标和尺寸。

4.4 使用场景

ImgAreaSelect 可以应用于以下几种常见的场景:

4.4.1 头像裁剪

用户上传自己的照片,通过 ImgAreaSelect 选择合适的区域作为头像。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>头像裁剪示例</title><link rel="stylesheet" href="http://odyniec.net/projects/imgareaselect/css/imgareaselect-default.css"><style>img { max-width: 100%; }</style>
</head>
<body><h1>选择你的头像</h1><img id="avatar" src="https://via.placeholder.com/300" alt="用户头像"><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="http://odyniec.net/projects/imgareaselect/jquery.imgareaselect.pack.js"></script><script>$(function () {$('#avatar').imgAreaSelect({aspectRatio: '1:1',handles: true,onSelectEnd: function (img, selection) {console.log(`X: ${selection.x1}, Y: ${selection.y1}`);console.log(`Width: ${selection.width}, Height: ${selection.height}`);}});});</script>
</body>
</html>
4.4.2 在线图片编辑

在线图片编辑工具中,让用户选择图片的一部分进行详细编辑或增强效果。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>在线图片编辑示例</title><link rel="stylesheet" href="http://odyniec.net/projects/imgareaselect/css/imgareaselect-default.css"><style>img { max-width: 100%; }</style>
</head>
<body><h1>在线图片编辑</h1><img id="edit-image" src="https://via.placeholder.com/600x400" alt="待编辑图片"><script src="https://code.jquery.com/jquery-3.6.0.min.js"></script><script src="http://odyniec.net/projects/imgareaselect/jquery.imgareaselect.pack.js"></script><script>$(function () {$('#edit-image').imgAreaSelect({handles: true,onSelectEnd: function (img, selection) {console.log(`X: ${selection.x1}, Y: ${selection.y1}`);console.log(`Width: ${selection.width}, Height: ${selection.height}`);}});});</script>
</body>
</html>

通过这些示例代码和具体使用场景的讲解,相信你已经了解了如何在你的项目中使用 ImgAreaSelect 来实现图像裁剪功能。更多详细信息可以参考 ImgAreaSelect 的官方文档。

5. DarkroomJS:一个开源的照片编辑器,带有裁剪功能

DarkroomJS 是一个强大的 JavaScript 库,用于图像编辑和裁剪。它基于 HTML5 和 jQuery,提供了一系列简单易用的接口,使开发者能够轻松地在网页中实现图像编辑和裁剪功能。

5.1 概述

DarkroomJS 提供了丰富的照片编辑功能,包括旋转、缩放、裁剪等操作。用户界面直观,使用方便,适用于各种 Web 项目。

官方网站:DarkroomJS

<!DOCTYPE html>
<html>
<head><link rel="stylesheet" href="darkroom.css">
</head>
<body><div class="darkroom-container"><img src="example.jpg" id="target"></div><script src="darkroom.js"></script><script>var darkroom = new Darkroom('#target', {// Initializing options here...});</script>
</body>
</html>

5.2 主要特性

5.2.1 多种编辑工具

DarkroomJS 支持多种图像编辑工具,如旋转、缩放、裁剪等。用户可以通过简洁的界面进行操作,有效提高了图像处理的效率。

var darkroom = new Darkroom('#target', {plugins: {crop: {quickCropKey: 67, // Key "C"},save: false,}
});
5.2.2 自定义插件

DarkroomJS 允许开发者编写和使用自定义插件,以满足特定的功能需求。这使得该库具有很高的扩展性和灵活性。

Darkroom.plugins['customPlugin'] = Darkroom.Plugin.extend({// Custom plugin code here...
});var darkroom = new Darkroom('#target', {plugins: {customPlugin: {}}
});

5.3 使用示例

以下是一个简单的示例,展示如何初始化 DarkroomJS 并启用裁剪功能:

<!DOCTYPE html>
<html>
<head><link rel="stylesheet" href="darkroom.css">
</head>
<body><div class="darkroom-container"><img src="example.jpg" id="target"></div><script src="darkroom.js"></script><script>var darkroom = new Darkroom('#target', {minWidth: 400,minHeight: 300,maxWidth: 800,maxHeight: 600,ratio: 4/3,backgroundColor: '#000',plugins: {crop: {quickCropKey: 67, // Key "C"minHeight: 50,minWidth: 50,ratio: null},save: {callback: function() {this.darkroom.selfDestroy(); // Cleanup}}},init: function() {// Initialization code here...}});</script>
</body>
</html>

5.4 使用场景

DarkroomJS 非常适合于需要嵌入式图像编辑功能的 Web 应用程序,如在线照片编辑器、社交媒体平台、内容管理系统等。

  1. 在线照片编辑器
    用户可以在浏览器中直接对照片进行裁剪、旋转等操作,无需下载客户端软件。

  2. 社交媒体平台
    提供图片上传和编辑功能,使用户能够快速分享美化后的照片。

  3. 内容管理系统
    帮助网站管理员更好地处理和管理图片资源,提高网站的视觉效果。

6. Pintura Image Editor:一个现代化的图像编辑器,支持裁剪等多种功能

Pintura Image Editor官网

6.1 概述

Pintura Image Editor 是一个强大的JavaScript库,不仅支持图像裁剪,还包括旋转、缩放、滤镜应用等多种功能。它可以无缝集成到各种前端框架中,提供了直观的用户界面和丰富的API。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Pintura Image Editor示例</title><link rel="stylesheet" href="https://unpkg.com/pintura@7.0.0/dist/pintura.css">
</head>
<body><input type="file" id="input"><script src="https://unpkg.com/pintura@7.0.0/dist/pintura.js"></script><script>const input = document.getElementById('input');input.addEventListener('change', (e) => {const file = e.target.files[0];if (!file) return;Pintura.openDefaultEditor({image: URL.createObjectURL(file)});});</script>
</body>
</html>

6.2 主要特性

6.2.1 特性一:高效的图像处理能力

Pintura Image Editor 使用WebAssembly技术,高效处理大规模图像,确保快速和流畅的用户体验。

Pintura.openDefaultEditor({image: 'path/to/image.jpg',utils: ['crop', 'rotate', 'flip', 'filter']
});
6.2.2 特性二:友好的用户界面

Pintura 提供了一个可定制的用户界面,使得用户能够轻松上手进行图像编辑操作。

Pintura.setLocale('en');
Pintura.openDefaultEditor({image: 'path/to/image.jpg',locale: {crop: 'Crop',rotate: 'Rotate',flip: 'Flip'}
});

6.3 使用示例

以下是一个集成Pintura Image Editor的完整实例代码,展示了如何在网页中实现基本的图像裁剪功能。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Pintura Image Editor示例</title><link rel="stylesheet" href="https://unpkg.com/pintura@7.0.0/dist/pintura.css">
</head>
<body><input type="file" id="input"><script src="https://unpkg.com/pintura@7.0.0/dist/pintura.js"></script><script>const input = document.getElementById('input');input.addEventListener('change', (e) => {const file = e.target.files[0];if (!file) return;const editor = Pintura.openEditor({image: URL.createObjectURL(file),util: ['crop'],utilOptions: {cropAspectRatio: 1 / 1,cropDefault: { aspectRatio: 1 / 1 }}});editor.on('process', (output) => {console.log('Cropped image:', output.dest);});});</script>
</body>
</html>

6.4 使用场景

Pintura Image Editor广泛应用于各种需要图像处理的领域,以下是一些典型的使用场景:

6.4.1 用户头像裁剪

在社交媒体和社区网站中,用户通常需要上传并裁剪头像,Pintura 的直观界面使这一过程变得简单。

Pintura.openDefaultEditor({image: 'path/to/avatar.jpg',utils: ['crop'],utilOptions: {cropAspectRatio: 1 / 1}
});
6.4.2 在线图片编辑工具

为在线商店或博客平台提供内置的图片编辑功能,用户可以直接在平台上编辑图片,无需下载任何软件。

Pintura.openEditor({image: 'path/to/product.jpg',utils: ['crop', 'resize', 'filter'],utilOptions: {cropAspectRatio: 16 / 9}
});

通过这些代码示例和详细介绍,希望能帮助你更好地理解和使用Pintura Image Editor这个强大的图像处理库。有关更多信息和文档,请访问 Pintura Image Editor官网。

总结

图像裁剪在Web应用开发中扮演着重要角色,不同的库提供了各具特色的解决方案。从功能丰富的Cropper.js,到轻量级但功能实用的ImgAreaSelect,再到集成更多图像处理功能的Pintura Image Editor,每个库都有其独特的优势和适用范围。开发者可以根据自身项目的需求,选择最适合的图像裁剪库,以提升用户体验和开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

System-Verilog 实现DE2-115流水灯

文章目录 一、 SystemVerilog1. SystemVerilog简介2. 基本语法和特性 二、实验过程hello.v文件引脚分配 三、实验效果参考 一、 SystemVerilog 1. SystemVerilog简介 SystemVerilog是一种高级的硬件描述语言&#xff08;HDL&#xff09;&#xff0c;它不仅继承了Verilog语言的…

大数据之Hadoop是什么?Hadoop起源?

什么是Hadoop Hadoop 是一个用于存储和处理大规模数据集(大数据)的分布式存储和分布式计算平台。它由 Apache 软件基金会维护,并基于 Java 编程语言编写。Hadoop 的核心设计理念是能够在普通硬件上运行,并且能够处理非常大的数据集。狭义上说Hadoop就是一个框架平台,广义…

SolarLab - hackthebox

简介 靶机名称&#xff1a;SolarLab 难度&#xff1a;中等 靶场地址&#xff1a;https://app.hackthebox.com/machines/SolarLab 本地环境 靶机IP &#xff1a;10.10.11.16 ubuntu渗透机IP(ubuntu 22.04)&#xff1a;10.10.16.17 windows渗透机IP&#xff08;windows11&…

Redis的安装(linux、docker)与其基本的api使用

一、Redis简介 Redis是一个开源的&#xff0c;使用 C 编写&#xff0c;高性能的Key-Value的NoSQL数据库。 SQL &#xff1a;关系型数据库&#xff0c;例如&#xff1a;MySQL&#xff0c;Oracle等等NoSQL &#xff1a;Not Only SQL 不仅仅是SQL&#xff0c;表示是非关系型数据库…

《华为项目管理之道》第1章笔记

《华为项目管理之道》&#xff0c;是新出的华为官方的项目管理书&#xff0c;整个书不错。第1章的精华&#xff1a; 1.2.2 以项目为中心的机制 伴随着项目型组织的建立&#xff0c;华为逐步形成了完备的项目管理流程和制度&#xff0c;从而将业务运 作构建在项目经营管理之…

Mybatis-Plus多种批量插入方案对比

背景 六月某日上线了一个日报表任务&#xff0c;因是第一次上线&#xff0c;故需要为历史所有日期都初始化一次报表数据 在执行过程中发现新增特别的慢&#xff1a;插入十万条左右的数据&#xff0c;SQL执行耗费高达三分多钟 因很早就听闻过mybatis-plus的[伪]批量新增的问题&…

python命名空间详解

Python中的命名空间是编程语言设计的一个核心概念&#xff0c;它负责存储变量名与其对应的值之间的映射关系&#xff0c;确保了程序中变量的唯一性和可访问性。命名空间不仅关乎变量的生命周期和作用范围&#xff0c;也是Python中实现封装、避免命名冲突的重要机制。 1. 命名空…

ORA-27090: Unable to reserve kernel resources for asynchronous disk I/O

一套11.2.0.4的rac库巡检&#xff0c;发现asm实例日志有如下报错 2.5.2 locate alert_${hst}.log tail -n 200 /oracle/app/grid/diag/asm/asm/ASM1/trace/alert_ASM1.log Errors in file /oracle/app/grid/diag/asm/asm/ASM1/trace/ASM1_ora_96212.trc: ORA-27090: Unable to…

利器放送丨如何在PS里使用stable diffusion插件?

各位设计界的领军人物们&#xff0c;你们一定对PS&#xff08;也就是大家熟知的Photoshop&#xff09;不陌生吧。同样&#xff0c;对于AI领域的精英们&#xff0c;SD&#xff08;stablediffusion&#xff09;这款软件也应该是如雷贯耳。这两款软件&#xff0c;各自独立且功能强…

c++题目_第K小的数(进阶)

第K小的数 时间限制&#xff1a; C/C 1s 其他语言 2s 空间限制&#xff1a; C/C 256MB 其他语言 512MB 题目描述 给定 nn 个正整数 a1,a2,…,ana1​,a2​,…,an​ 和 mm 个正整数 b1,b2,…,bmb1​,b2​,…,bm​。 请在 nmnm 个 aibj(1≤i≤n,1≤j≤m)ai​bj​(1≤i≤…

VSCode格式化插件-prettier

VSCode格式化插件 1.安装插件&#xff1a;prettier 2.设置默认格式化工具 设置中&#xff0c;搜索 “Default Formatter”。 在编辑器设置中&#xff0c;将默认格式化工具设为 Prettier。 3.启用格式化选项&#xff1a; 在设置中搜索 “Format On Save”&#xff0c;并勾选…

fastapi相关知识点回顾

poetry poetry是一个包管理工具&#xff0c;能够管理一个项目中python相关的依赖。 安装&#xff1a; pip install poetry初始化项目&#xff1a; poetry init添加依赖&#xff1a; poetry add fastapi这个命令相当于 pip instal fastatpi。 poetry使用国内源 poetry 默…

几种经典查找算法

几种经典查找算法 顺序查找法二分查找法判定树 二叉查找树&#xff08;BST&#xff09;索引查找B-树B树散列表&#xff08;hash&#xff09;查找 顺序查找法 顺序查找的平均查找长度为&#xff1a; 时间复杂度为0&#xff08;n&#xff09;&#xff1b; 二分查找法 int bin…

vxe-table表格新增节点

做前端的朋友可以参考下&#xff1a;也可结合实际需求查看相应的官方文档 效果图 附上完整代码 <template><div><vxe-toolbar ref"toolbarRef" :refresh"{queryMethod: searchMethod}" export print custom><template #buttons>&…

算法训练营第六十天(延长12天添加图论) | LeetCode 647 回文子串、LeetCode 516 最长回文子序列

LeetCode 67 回文子串 思路很简单&#xff0c;每一个dp[i]等于dp[i-1]加上当前字符向前直到0各个长度字符串回文串个数即可 代码如下&#xff1a; class Solution {public boolean isValid(String s) {int l 0, r s.length() - 1;while (l < r) {if (s.charAt(l) ! s.ch…

MAC 下搭建LVGL仿真器

0.前置条件&#xff0c;保证电脑已经安装cmake&#xff0c;sdl2. 1. 下载仿真器代码&#xff1a;&#xff1a; git clone https://github.com/lvgl/lv_sim_vscode_sdl.git 2. 因为上面的仓库默认是没有lvgl源码&#xff0c;故cd 到lv_sim_vscode_sdl目录下&#xff0c;再下…

08:打印字符

OpenJudge - 08:打印字符 描述 输入一个ASCII码&#xff0c;输出对应的字符。 输入 一个整数&#xff0c;即字符的ASCII码&#xff0c;保证存在对应的可见字符。 输出 一行&#xff0c;包含相应的字符。 样例输入 65 样例输出 A >>>>>>分割线>>>>…

代码随想录算法训练营第三十八天| 509. 斐波那契数、70. 爬楼梯、 746. 使用最小花费爬楼梯

LeetCode 509. 斐波那契数 题目链接&#xff1a;https://leetcode.cn/problems/fibonacci-number/description/ 文章链接&#xff1a;https://programmercarl.com/0509.%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0.html 思路 public int fib(int n) {// dp[i]表示第i个数…

Java 注解设计 -- Java 语言注解的介绍、高阶应用与自定义注解

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 012 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进一步完善自己对整个 Java 技术体系来充实自…

如何通过抖音自动评论精准获客实现业务增长?这些方法值得一试!

在当今竞争激烈的商业环境中&#xff0c;企业若想脱颖而出&#xff0c;就必须掌握精准获客的艺术。精准获客&#xff0c;即通过精确的市场定位和营销策略&#xff0c;吸引并保留最有可能成为客户的目标群体。它不仅能提高转化率&#xff0c;还能有效降低营销成本&#xff0c;是…