欢迎各位兄弟 发布技术文章
这里的技术是共享的
由于裁切图片是通过服务端的动态编程语言处理的,所以在初始化插件的时候,我们可以给他设置图片上传的路径,然后处理成功以后通过返回的数据来显示裁切以后的图片。
在初始化Croppic的时候设置上传路径参数;
var cropperOptions = {
uploadUrl:'path_to_your_image_proccessing_file.php'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
插件通过AJAX POST的方法上传图片,通过设置表单为multipart/form-data数据类型,注意AJAX请求不能跨域,这也是为了安全。
裁切图片成功以后,你必须返回一下的JSON数据,限制最大缩放的图像宽度和高度,所以图像不出现模糊。
{
"status":"success",
"url":"path/img.jpg",
"width":originalImgWidth,
"height":originalImgHeight
}
如果裁切图片失败,你需要返回一下JSON数据,方便告诉Croppic处理异常。
{
"status":"error",
"message":"your error message text"
}
如果你需要发送额外的数据到服务器,你可以使用uploadDate参数
var cropperOptions = {
uploadUrl:'path_to_your_image_proccessing_file.php',
uploadData:{
"dummyData":1,
"dummyData2":"text"
}
}
var cropperHeader = new Croppic('yourId', cropperOptions);
这个参数设置你处理图片的脚本地址,这个参数有别于uploadUrl,虽然使用方法相同的。
var cropperOptions = {
cropUrl:'path_to_your_image_cropping_file.php'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
使用了这个参数,你将接收到下面的multipart/form-data数据类型。
成功后的图像保存,你必须返回以下JSON,图像的宽度和高度要求限制最大变焦,所以图像不出来模糊。
{
"status":"success",
"url":"path/croppedImg.jpg"
}
如果裁切图片失败,你需要返回一下JSON数据,方便告诉Croppic处理异常。
{
"status":"error",
"message":"your error message text"
}
额外的数据要发送给您的图像分割处理文件
var cropperOptions = {
customUploadButtonId:'path_to_your_image_proccessing_file.php',
cropData:{
"dummyData":1,
"dummyData2":"text"
}
}
var cropperHeader = new Croppic('yourId', cropperOptions);
载入已存在服务器上的图像
var cropperOptions = {
cropUrl:'path_to_your_image_cropping_file.php',
loadPicture:'path-to-your-image'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
defineControls可以设置对图片的精确控制,有几个参数是可以设置的:
var cropperOptions = {
zoomFactor:10,
doubleZoomControls:true,
rotateFactor:10,
rotateControls:true
}
var cropperHeader = new Croppic('yourId', cropperOptions);
成功的图像裁剪裁剪后,在页面上显示处理过后的Image图片的URL,通过设置一个ID找到页面上的输入框。
<input type="text" id="myOutputId">
var cropperOptions = {
outputUrlId:'myOutputId'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
如果你想自定义上传裁切图片的按钮,你可以设置这个参数,传递一个按钮的ID
var cropperOptions = {
customUploadButtonId:'myDivId'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
如果你想在模态窗口中打开裁剪(默认是false)
var cropperOptions = {
modal:true
}
var cropperHeader = new Croppic('yourId', cropperOptions);
果你想在模态窗口中打开裁剪(默认是false),包裹的DIV的类必须设置为“LOADER”。
var cropperOptions = {
loaderHtml:'<img class="loader" src="loader.png" >'
}
var cropperHeader = new Croppic('yourId', cropperOptions);
如果你想在JavaScript处理初始FileUpload(有)而不是在服务器端(默认为false),不是所有的浏览器支持的API的例子有:IE10 +支持。
var cropperOptions = {
processInline:true,
}
var cropperHeader = new Croppic('yourId', cropperOptions);
透明图像显示当前IMG变焦,提示:为了防止布局打破,需要给父级裁切的DIV盒子设置 overflow:hidden
var cropperOptions = {
imgEyecandy:true,
imgEyecandyOpacity:0.2
}
var cropperHeader = new Croppic('yourId', cropperOptions);
一些回调函数(打开你的控制台输出的混乱和观看)。
var cropperOptions = {
onBeforeImgUpload: function(){ console.log('onBeforeImgUpload') },
onAfterImgUpload: function(){ console.log('onAfterImgUpload') },
onImgDrag: function(){ console.log('onImgDrag') },
onImgZoom: function(){ console.log('onImgZoom') },
onBeforeImgCrop: function(){ console.log('onBeforeImgCrop') },
onAfterImgCrop: function(){ console.log('onAfterImgCrop') },
onReset: function(){ console.log('onReset') },
onError: function(errormsg){ console.log('onError:'+errormsg) }
}
var cropperHeader = new Croppic('yourId', cropperOptions);
通过 this.就能够得到想到的 response 结果 response 响应过来的信息 this就可以得到当然(this还有其它信息)
onAfterImgUpload: function(){
Croppic提供了一些方法
var cropper = new Croppic('yourId', cropperOptions);
cropper.destroy() // no need explaining here :)
cropper.reset() // destroys and then inits the cropper