亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

JCrop+ajaxUpload 圖像切割上傳的實例代碼

2024-09-01 08:33:45
字體:
來源:轉載
供稿:網友

先給大家展示下效果圖:

jcrop,ajaxupload上傳

頁面代碼

里面用戶的uuid是寫死的test

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE><html lang="en"><head><title>用戶頭像剪裁</title><meta http-equiv="Content-type" content="text/html;charset=UTF-8" /><link rel="stylesheet" href="resources/Jcrop/css/jquery.Jcrop.css"><link rel="stylesheet" href="resources/css/photo.css"><script src="resources/js/jquery.min.js"></script><script src="resources/Jcrop/js/jquery.Jcrop.js"></script><script src="resources/js/ajaxfileupload.js"></script></head><body><div class="container"><div class="row"><div class="span12"><div class="jc-demo-box"><div class="page-header"><h1>頭像剪裁</h1></div><img src="resources/img/test.jpg" id="target" /><div id="preview-pane" ><div class="preview-container"><img src="resources/img/test.jpg" class="jcrop-preview"/></div ><div style='float:left;display:inline;'><a class='btn_addPic' href="javascript:void(0);"><span><EM>+</EM>添加圖片</span> <input id="upload_image" type="file" name="upimage" accept="image/*" class = "filePrew"/></a></div><div style='float:right;display:inline;'><a class='btn_addPic' href="javascript:void(0);" onclick='submit()'><span>提交</span> </a></div></div></div></div></div></div></body><script type="text/javascript">var global_api = "";var boundx ="";//頁面圖片寬度var boundy ="";//頁面圖片高度var tag = false;$(function() {// Create variables (in this scope) to hold the API and image size//創建變量(在這個范圍)的API和圖像大小var jcrop_api,// Grab some information about the preview pane//獲取一些信息預覽窗格$preview = $('#preview-pane'),$pcnt = $('#preview-pane .preview-container'),$pimg = $('#preview-pane .preview-container img'),xsize = $pcnt.width(),ysize = $pcnt.height();$('#target').Jcrop({onChange: updatePreview,onSelect: updatePreview,aspectRatio: xsize / ysize},function(){// Use the API to get the real image size//使用API來獲得真實的圖像大小var bounds = this.getBounds();boundx = bounds[0];boundy = bounds[1];// Store the API in the jcrop_api variable//jcrop_api變量中存儲APIjcrop_api = this;// Move the preview into the jcrop container for css positioning//預覽進入jcrop容器css定位$preview.appendTo(jcrop_api.ui.holder);});function updatePreview(c){if (parseInt(c.w) > 0)global_api=c;{var rx = xsize / c.w;var ry = ysize / c.h;$pimg.css({width: Math.round(rx * boundx) + 'px',height: Math.round(ry * boundy) + 'px',marginLeft: '-' + Math.round(rx * c.x) + 'px',marginTop: '-' + Math.round(ry * c.y) + 'px'});}};//=======選擇圖片回顯===============$('#upload_image').change(function(event) {// 根據這個 <input> 獲取文件的 HTML5 js 對象var files = event.target.files, file; if (files && files.length > 0) {// 獲取目前上傳的文件file = files[0];// 下面是關鍵的關鍵,通過這個 file 對象生成一個可用的圖像 URL// 獲取 window 的 URL 工具var URL = window.URL || window.webkitURL;// 通過 file 生成目標 urlvar imgURL = URL.createObjectURL(file);// 用這個 URL 產生一個 <img> 將其顯示出來$('.jcrop-holder img').attr('src', imgURL);$('.preview-container img').attr('src', imgURL);}});//=============是否選擇了本地圖片==================$("#upload_image").change(function(){tag=true;});});//========================================================//======圖片保存===========function submit(){if(tag&&global_api != ""){ajaxFileUpload();}else{alert('你是不是什么事情都沒干?');}}//ajax文件上傳function ajaxFileUpload() {$.ajaxFileUpload({url: 'uploadphoto', //用于文件上傳的服務器端請求地址secureuri: false, //一般設置為falsefileElementId: 'upload_image', //文件上傳空間的id屬性dataType: 'json', //返回值類型 一般設置為jsondata:{x:global_api.x,y:global_api.y,w:global_api.w,h:global_api.h,pw:boundx,ph:boundy,unid:'test'}, //一同上傳的數據 success: function (data){ //服務器成功響應處理函數if(data.result){alert('成功');}else{alert('失敗');}window.location.reload();//刷新當前頁面}});}</script></html>

后臺代碼

@ResponseBody@RequestMapping("uploadphoto")public Map<String, Object> uploadPhoto(@RequestParam("upimage") MultipartFile imageFile, HttpServletRequest request,HttpServletResponse response) throws Exception {Map<String, Object> result = new HashMap<String, Object>();boolean tag =false;String unid = request.getParameter("unid");String x = request.getParameter("x");String y = request.getParameter("y");String h = request.getParameter("h");String w = request.getParameter("w");// 頁面實際圖片寬高String pheight = request.getParameter("ph");String pweight = request.getParameter("pw");// 切圖參數int imageX = Integer.parseInt(x);int imageY = Integer.parseInt(y);int imageH = Integer.parseInt(h);int imageW = Integer.parseInt(w);int srcH = Integer.parseInt(pheight);int srcW = Integer.parseInt(pweight);String realPath = request.getSession().getServletContext().getRealPath("/");String resourcePath = "resources/uploadImages/";try {if (imageFile != null) {if (FileUploadUtil.allowUpload(imageFile.getContentType())) {// 這里開始截取操作byte[] b = ImageCut.imgCut(imageFile.getInputStream(), imageX, imageY, imageW, imageH, srcW, srcH);if (b != null) {// 存入數據庫User user = userService.selectByPrimaryKey(unid);user.setPhoto(b);tag = (userService.updateByPrimaryKeySelective(user)==1)?tag=true:tag;result.put("result", tag);}}}} catch (Exception e) {e.printStackTrace();}result.put("result", tag);return result;}

圖像切割工具類

package com.ssm.demo.utils;import java.awt.Graphics;import java.awt.Image;import java.awt.Toolkit;import java.awt.image.BufferedImage;import java.awt.image.CropImageFilter;import java.awt.image.FilteredImageSource;import java.awt.image.ImageFilter;import java.io.ByteArrayOutputStream;import java.io.InputStream;import javax.imageio.ImageIO;public class ImageCut {/*** 截取圖片* * @param srcImageFile* 原圖片地址* @param x* 截取時的x坐標* @param y* 截取時的y坐標* @param desWidth* 截取的寬度* @param desHeight* 截取的高度* @param srcWidth* 頁面圖片的寬度* @param srcHeight* 頁面圖片的高度* */public static byte[] imgCut(InputStream input, int x, int y, int desWidth, int desHeight, int srcWidth,int srcHeight) {try {Image img;ImageFilter cropFilter;BufferedImage bi = ImageIO.read(input);if (srcWidth >= desWidth && srcHeight >= desHeight) {Image image = bi.getScaledInstance(srcWidth, srcHeight, Image.SCALE_DEFAULT);cropFilter = new CropImageFilter(x, y, desWidth, desHeight);img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(image.getSource(), cropFilter));BufferedImage tag = new BufferedImage(desWidth, desHeight, BufferedImage.TYPE_INT_RGB);Graphics g = tag.getGraphics();g.drawImage(img, 0, 0, null);g.dispose();// 輸出文件ByteArrayOutputStream out = new ByteArrayOutputStream();ImageIO.write(tag, "JPEG", out);return out.toByteArray();}} catch (Exception e) {e.printStackTrace();}return null;}}

以上所述是小編給大家介紹的JCrop+ajaxUpload 圖像切割上傳的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情精品久久久久| 亚洲欧美日韩一区二区在线| 亚洲欧美日韩中文在线制服| 亚洲免费福利视频| 日本成熟性欧美| 亚洲图片欧美午夜| 另类色图亚洲色图| 中文字幕久热精品视频在线| 992tv成人免费视频| 午夜精品三级视频福利| 欧美在线国产精品| 成人网中文字幕| 亚洲最大激情中文字幕| 国产精品福利在线| 亚洲第一区在线观看| 国产欧美在线视频| 国产精品自拍小视频| www.日韩系列| 国模精品一区二区三区色天香| 久久亚洲成人精品| 91成人国产在线观看| 国产精品视频一区国模私拍| 日本精品久久中文字幕佐佐木| 午夜精品蜜臀一区二区三区免费| 国产欧美久久一区二区| 亚洲成人av片在线观看| 久久久久久999| 国产一区二区日韩精品欧美精品| 日韩欧美高清在线视频| 一区二区三区 在线观看视| 久久久久久久久久av| 日韩精品视频在线免费观看| 国产一区二区日韩| 北条麻妃一区二区三区中文字幕| 久久精品国产久精国产一老狼| 亚洲欧美激情另类校园| 美女999久久久精品视频| 91久久国产精品91久久性色| 成人在线中文字幕| 亚洲精品成a人在线观看| 有码中文亚洲精品| 人九九综合九九宗合| 国产精品高潮呻吟久久av野狼| 国产精品日韩欧美综合| 91在线免费观看网站| 亚洲欧洲国产一区| 91久久久在线| 国产精品对白刺激| 国内免费精品永久在线视频| 国产情人节一区| 国产精品露脸自拍| 欧美插天视频在线播放| 国产精品高潮呻吟久久av无限| 国产精品xxxxx| 国产www精品| 中文字幕自拍vr一区二区三区| 日韩有码视频在线| 日韩最新中文字幕电影免费看| 欧美日韩在线免费观看| 亚洲人av在线影院| 成人激情春色网| 欧美老女人在线视频| 国产精品久久久久999| 在线看片第一页欧美| 精品国产一区二区三区久久久| 亚洲日本成人女熟在线观看| 国产精欧美一区二区三区| 91精品视频一区| 色av中文字幕一区| 欧美午夜精品伦理| 96pao国产成视频永久免费| 亚洲人成在线观看网站高清| 亚洲视频一区二区| 91精品国产亚洲| 成人福利视频在线观看| 国产精品久久久久久久久久尿| 欧美激情国产高清| 精品高清美女精品国产区| 综合久久五月天| 日本电影亚洲天堂| 日韩精品视频中文在线观看| 日本国产欧美一区二区三区| 亚洲第一网站免费视频| 欧美一级高清免费| 精品国产乱码久久久久酒店| 在线观看久久久久久| 亚洲新中文字幕| 欧美最近摘花xxxx摘花| 国产成人一区二区三区小说| 色噜噜久久综合伊人一本| 91精品国产自产91精品| 久久久国产视频91| 久久国产精品久久久久| 在线视频欧美性高潮| 欧美黑人一级爽快片淫片高清| 久久久久免费精品国产| 91极品视频在线| 日韩a**站在线观看| 91麻豆国产精品| 国产又爽又黄的激情精品视频| 91在线视频导航| 国产亚洲综合久久| 国产欧美日韩专区发布| 欧美午夜片在线免费观看| 欧美激情国产日韩精品一区18| 欧美在线影院在线视频| 久久久国产精彩视频美女艺术照福利| 久久久久久国产三级电影| 2019亚洲日韩新视频| 久久精品电影网| 精品亚洲一区二区三区| 中文字幕亚洲欧美日韩2019| 欧美激情国内偷拍| 久久久之久亚州精品露出| 成人黄色短视频在线观看| 欧美日韩免费观看中文| 伦理中文字幕亚洲| 亚洲天堂视频在线观看| 久久的精品视频| 亚洲第一福利在线观看| 97在线观看视频国产| 亚洲欧美国产精品va在线观看| 久热精品视频在线| 69视频在线播放| 国产精品美女在线观看| 久久中文久久字幕| 亚洲第一页中文字幕| 日韩国产欧美精品在线| 久久精品最新地址| 美女黄色丝袜一区| 欧美肥臀大乳一区二区免费视频| 91精品国产高清自在线| 8050国产精品久久久久久| 亚洲欧洲在线视频| 亚洲午夜未删减在线观看| 91九色综合久久| 亚洲视频在线观看| 日韩av在线一区二区| 欧美大荫蒂xxx| 久久久久五月天| 国产精品视频精品| 国内成人精品视频| 欧美刺激性大交免费视频| 欧美激情网友自拍| 亚洲精品一区在线观看香蕉| 国产在线精品一区免费香蕉| 不卡av在线播放| 日韩精品高清视频| 欧美性xxxx极品高清hd直播| 亚洲已满18点击进入在线看片| 日韩av在线一区二区| 8x海外华人永久免费日韩内陆视频| 国产精品爱久久久久久久| 性欧美办公室18xxxxhd| 亚洲美女黄色片| 欧美日韩午夜剧场| 久久久人成影片一区二区三区观看| 成人免费午夜电影| 久久理论片午夜琪琪电影网| 国产91在线播放九色快色| 岛国视频午夜一区免费在线观看| 国产综合在线看| 美女国内精品自产拍在线播放| 亚洲经典中文字幕|