jcrop库进行图片裁剪,给个演示
时间: 2024-02-09 11:10:30 浏览: 122
jcrop图片裁剪demo
好的,这里提供一个基于jcrop库的图片裁剪演示,您可以在下面的代码框中运行它,体验一下:
```html
<!DOCTYPE html>
<html>
<head>
<title>Jcrop 图片裁剪演示</title>
<meta charset="utf-8">
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.15/css/jquery.Jcrop.min.css" />
<script src="//code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-jcrop/0.9.15/js/jquery.Jcrop.min.js"></script>
<style>
#preview {
width: 200px;
height: 200px;
overflow: hidden;
}
</style>
</head>
<body>
<h1>Jcrop 图片裁剪演示</h1>
<form method="post" action="crop.php">
<input type="hidden" name="image" value="path/to/image.jpg">
<img src="path/to/image.jpg" id="cropbox">
<div id="preview"></div>
<p>
<button type="submit">保存裁剪结果</button>
</p>
</form>
<script>
$(function() {
$('#cropbox').Jcrop({
aspectRatio: 1,
boxWidth: 500,
onChange: updatePreview,
onSelect: updatePreview
});
});
function updatePreview(coords) {
var rx = 200 / coords.w;
var ry = 200 / coords.h;
$('#preview').css({
width: Math.round(rx * $('#cropbox').width()) + 'px',
height: Math.round(ry * $('#cropbox').height()) + 'px',
marginLeft: '-' + Math.round(rx * coords.x) + 'px',
marginTop: '-' + Math.round(ry * coords.y) + 'px'
});
$('input[name="x"]').val(coords.x);
$('input[name="y"]').val(coords.y);
$('input[name="width"]').val(coords.w);
$('input[name="height"]').val(coords.h);
}
</script>
</body>
</html>
```
这段代码会加载jcrop库,并在页面中显示一张图片,您可以使用鼠标拖动裁剪框来选择需要裁剪的区域。当您选择好区域后,可以点击“保存裁剪结果”按钮,将裁剪结果提交给服务器。
为了使代码正常工作,您需要将上面代码中的 `path/to/image.jpg` 修改为您自己的图片路径,并创建一个名为 `crop.php` 的PHP脚本来处理裁剪结果。下面是一个裁剪处理脚本的示例:
```php
// 获取裁剪参数
$x = $_POST['x'];
$y = $_POST['y'];
$width = $_POST['width'];
$height = $_POST['height'];
// 打开原始图像
$src = imagecreatefromjpeg($_POST['image']);
// 创建新图像并复制裁剪区域
$dest = imagecreatetruecolor($width, $height);
imagecopy($dest, $src, 0, 0, $x, $y, $width, $height);
// 保存新图像
imagejpeg($dest, 'path/to/cropped/image.jpg');
// 释放内存
imagedestroy($src);
imagedestroy($dest);
```
这个脚本会从POST参数中获取裁剪参数和原始图像路径,然后使用GD库创建新图像并保存。请注意,上述代码仅供参考,并且需要根据具体情况进行适当的修改。
阅读全文