📅  最后修改于: 2023-12-03 15:11:43.028000             🧑  作者: Mango
本程序旨在帮助用户更轻松地编辑个人资料照片,使个人资料更加完善。以下是程序具体介绍:
// 上传图片
function uploadFile(file) {
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://upload.qiniu.com/');
var formData = new FormData();
formData.append('file', file);
formData.append('token', TOKEN); // 七牛云存储的 TOKEN
xhr.send(formData);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var key = JSON.parse(xhr.responseText).key;
// 在此处调用裁剪功能
clipImage(key);
}
}
}
// 图片裁剪
function clipImage(key) {
var image = new Image();
image.src = 'https://url.xxx.com/' + key; // 七牛云存储的图片 URL
image.onload = function() {
var width = image.width > 800 ? 800 : image.width;
var height = image.height > 800 ? 800 : image.height;
$('#img-container').show();
$('#img-container img').attr('src', image.src).Jcrop({
aspectRatio: 1,
boxWidth: width,
boxHeight: height
}, function() {
jcrop_api = this;
});
}
}
// 保存裁剪后的图片
function saveImage() {
var canvas = document.createElement('canvas');
var img = document.getElementById('crop-image');
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, img.width, img.height);
var base64 = canvas.toDataURL('image/jpeg', 0.5);
// 在此处调用预览和保存功能
previewAndSave(base64);
}
// 预览和保存图片
function previewAndSave(base64) {
var img = document.createElement('img');
img.src = base64;
img.onload = function() {
$('#preview-image img').attr('src', base64);
$('#preview-modal').modal('show');
}
$('#save-btn').click(function() {
$.ajax({
url: SAVE_URL, // 保存图片的接口
type: 'POST',
data: {
img: base64
},
success: function(res) {
alert('保存成功');
$('#preview-modal').modal('hide');
},
error: function(err) {
alert('保存失败');
}
})
})
}
以上是程序的主要代码,具体实现细节详见程序源码。