jcrop上傳裁剪
A. jquery.jcrop和imgareaselect插件的兼容性分別如何
之前專門寫的一個基於Jcrop圖片裁剪實現的插件文章,希望對你有幫助 http://blog.csdn.net/sq111433/article/details/17562703
B. 怎麼實現php上傳圖片並可以裁剪的功能,類似一些網站的頭像截取,裁剪可以用jcrop插件。高分懸賞
php本身有裁剪圖片的函數,js的截取一般是獲得幾個坐標,供這個函數作為參數,php在圖片上傳到伺服器臨時空間的時候,對圖片進行裁剪,再按編程人的需求保存到指定目錄。
網路下現成的,或者翻翻手冊。
C. Jcrop裁剪圖片,火狐瀏覽器下出現小黑點
這種情況最好提供一個截圖,方便准確判斷具體原因,僅從提問中描述的內容,很難判斷准確的原因。嘗試在其他窗口中操作截圖測試下,如果僅火狐窗口會有,建議關閉火狐的硬體加速功能,再操作。
D. 怎麼用js或者jquery實現本地裁剪
網上很多這樣的圖片裁剪插件,最好用最常用的是jcrop,這里是他的官網
http://www.webresourcesdepot.com/jquery-image-crop-plugin-jcrop/
當然中文翻譯過來的文章也很多,樓主可以搜索下~
js或者jQuery在這里只能實現確立要裁剪的范圍,實際的裁剪是要交給後台進行的。
基本思路就是,設定一個半透明框,在要裁剪的圖片中進行拖動和定位,然後把這個框的范圍(也就是四個角的坐標送到後台),後台如PHP提供相關的圖片處理函數,對圖片進行裁剪。
思路比較簡單,操作起來也不難。
希望對樓主有幫助~~
E. jquery jcrop插件怎麼截屏
<div id="cutImage" style="display: none;">
<div class="bigImg" style="float: left;">
<img id="srcImg" src="" width="400px" height="270px"/>
</div>
<div id="preview_box" class="previewImg">
<img id="previewImg" src="" width="120px"/>
</div>
<div >
<form action="" method="post" id="crop_form">
<input type="hidden" id="bigImage" name="bigImage"/>
<input type="hidden" id="x" name="x" />
<input type="hidden" id="y" name="y" />
<input type="hidden" id="w" name="w" />
<input type="hidden" id="h" name="h" />
<P><input type="button" value="確認" id="crop_submit"/></P>
</form>
</div>
</div>
樣式:大圖、小圖展示都需要固定高度、寬度,因為後台需要進行放大處理。即:<img width=""height=""/>
然後是使用jcrop了。在使用jcrop前我們需要下載jcrop:http://deepliquid.com/content/Jcrop.html。
將下載的壓縮包解壓後可以看到三個文件夾及一個index.html文件,/
css下放置的是Jcorp的樣式文件,/demo下放置的是幾個簡單的例子(index.html中引用的鏈接就是放置在這個文件夾下),/js下放置的是Jcorp中最重要的腳本文件。我們只需要使用三個文件即可:jquery.Jcrop.css、jquery.Jcrop.js、JQuery.js
使用方法:
復制代碼 代碼如下:
//裁剪圖像
function cutImage(){
$("#srcImg").Jcrop( {
aspectRatio : 1,
onChange : showCoords,
onSelect : showCoords,
minSize :[200,200]
});
//簡單的事件處理程序,響應自onChange,onSelect事件,按照上面的Jcrop調用
function showCoords(obj) {
$("#x").val(obj.x);
$("#y").val(obj.y);
$("#w").val(obj.w);
$("#h").val(obj.h);
if (parseInt(obj.w) > 0) {
//計算預覽區域圖片縮放的比例,通過計算顯示區域的寬度(與高度)與剪裁的寬度(與高度)之比得到
var rx = $("#preview_box").width() / obj.w;
var ry = $("#preview_box").height() / obj.h;
//通過比例值控制圖片的樣式與顯示
$("#previewImg").css( {
width : Math.round(rx * $("#srcImg").width()) + "px", //預覽圖片寬度為計算比例值與原圖片寬度的乘積
height : Math.round(rx * $("#srcImg").height()) + "px", //預覽圖片高度為計算比例值與原圖片高度的乘積
marginLeft : "-" + Math.round(rx * obj.x) + "px",
marginTop : "-" + Math.round(ry * obj.y) + "px"
});
}
}
}
在使用jcrop前一定要先將$(「」).jcrop();進行預初始化,否則沒有效果。
還有一種調用的方法,
復制代碼 代碼如下:
var api = $.Jcrop('#cropbox',{
onChange: showPreview,
onSelect: showPreview,
aspectRatio: 1
});
這種方法是將Jcrop生成的對象賦給一個全局變數,這樣操作就會比較方便。
通過上面的js,就將X軸坐標、Y軸坐標、高度H、寬度W這個四個值傳遞給後台了,後台就只需要根據這四個值
進行放大處理,然後切割即可。
Action
復制代碼 代碼如下:
/**
* 裁剪頭像
*/
public String cutImage(){
/*
* 獲取參數
* x,y,w,h,bigImage
*/
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
int x = Integer.valueOf(request.getParameter("x"));
int y = Integer.valueOf(request.getParameter("y"));
int w = Integer.valueOf(request.getParameter("w"));
int h = Integer.valueOf(request.getParameter("h"));
String bigImage = request.getParameter("bigImage");
//獲取文件真實路徑
//獲取文件名
String[] imageNameS = bigImage.split("/");
String imageName = imageNameS[imageNameS.length-1];
//文件正式路徑
String imagePath = getSavePath()+"\\"+imageName;
//切割圖片
ImageCut imageCut = new ImageCut();
imageCut.cutImage(imagePath, x, y, w, h);
//頭像裁剪完成後,將圖片路徑保存到用戶
UserBean userBean = (UserBean) request.getSession().getAttribute("userBean");
userBean.setUserPhoto(bigImage);
//保存頭像
UserCenterService centerService = new UserCenterService();
centerService.updatePhoto(userBean);
//將修改後的用戶保存到session中
request.getSession().setAttribute("userBean", userBean);
return "updatePhoto";
}
}
裁剪圖片工具類:ImageCut.java
復制代碼 代碼如下:
public class ImageCut {
/**
* 圖片切割
* @param imagePath 原圖地址
* @param x 目標切片坐標 X軸起點
* @param y 目標切片坐標 Y軸起點
* @param w 目標切片 寬度
* @param h 目標切片 高度
*/
public void cutImage(String imagePath, int x ,int y ,int w,int h){
try {
Image img;
ImageFilter cropFilter;
// 讀取源圖像
BufferedImage bi = ImageIO.read(new File(imagePath));
int srcWidth = bi.getWidth(); // 源圖寬度
int srcHeight = bi.getHeight(); // 源圖高度
//若原圖大小大於切片大小,則進行切割
if (srcWidth >= w && srcHeight >= h) {
Image image = bi.getScaledInstance(srcWidth, srcHeight,Image.SCALE_DEFAULT);
int x1 = x*srcWidth/400;
int y1 = y*srcHeight/270;
int w1 = w*srcWidth/400;
int h1 = h*srcHeight/270;
cropFilter = new CropImageFilter(x1, y1, w1, h1);
img = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(image.getSource(), cropFilter));
BufferedImage tag = new BufferedImage(w1, h1,BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 繪制縮小後的圖
g.dispose();
// 輸出為文件
ImageIO.write(tag, "JPEG", new File(imagePath));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
F. jcrop配合後台的php怎麼實現
jcrop是一個圖片裁剪的jquery插件,在官方的demo包里有php的範例代碼。
G. java的手機截屏jcrop的aspectratio參數怎麼動態獲取
jcrop原始下載頁面:
基本使用方法如下:
一、在head部分(<head>和</head>之間)插入相關css和js文件。
<link rel="stylesheet" href="css/jquery.Jcrop.css">
<script
src="js/jquery.js"></script>
<script
src="js/jquery.Jcrop.js"></script>
二、在head部分插入回調函數等相關處理參數。
復制代碼
代碼如下:
<script language="Javascript">
<!--
jQuery(function($){
// Create variables (in this scope) to hold
the API and image size
var jcrop_api, boundx, boundy;
$('#cropbox').Jcrop({
minSize: [0,0],
maxSize:[0,0],
setSelect:
[0,0,0,0],
boxWidth:800,
borderOpacity:0.3,
keySupport:false,
dragEdges:false,
allowSelect:false,
allowResize:false,
bgOpacity:0.2,
boundary:0,
//allowMove:false,
addClass: 'jcrop-handle',
onSelect:
updateCoords,
},
function(){
// Use the API to get the real image
size
var bounds = this.getBounds();
boundx = bounds[0];
boundy =
bounds[1];
// Store the API in the jcrop_api variable
jcrop_api =
this;
});
function updateCoords(c)
{
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
};
function checkCoords()
{
if (parseInt($('#w').val())) return
true;
alert('請選擇裁剪區域');
return false;
};
});
-->
</script>
H. jcrop裁剪出來的圖片,為什麼是真,和想裁剪的大小位置都不一樣
我的也不一樣。。。。
請在此輸入您的回答
I. 哪位大神有jquery無刷新上傳圖片、裁剪、保存圖片的案例啊
jquery.jcrop 圖片裁剪(很好很強大)
http://deepliquid.com/content/Jcrop.html |
http://www.jb51.net/article/18273.htm