오늘은 웹에서 자주 사용되는 스크린샷(예: 아바타 등) 도구를 소개하겠습니다.
Jcrop데모
프로젝트 구조:
표현:
이것은 유용합니다:
이것을 본 후에는 모두가 직접 해보고 싶어합니다.
===========================================
코드 부분:
===========================================
준비:
다운로드: Jcrop-0.9.10(zip 형식)
위의 프로젝트 구조처럼 압축을 풀고 프로젝트에 넣습니다.
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial1.html
다음과 같이 코드 코드를 복사합니다 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Jcrop » 튜토리얼 » Hello World</title>
<script src="../js/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" />
<link rel="stylesheet" href="demo_files/demos.css" type="text/css" />
<스크립트 유형="텍스트/자바스크립트">
jQuery(함수($){
// 참 쉽죠??
$('#target').Jcrop();
});
</script>
</head>
<본문>
<div id="외부">
<div>
<div>
<h1>Jcrop - Hello World</h1>
<img src="demo_files/pool.jpg" id="target" />
<p>
<b>이 예는 Jcrop의 기본 동작을 보여줍니다.</b>
이벤트 핸들러가 연결되지 않았으므로 다음과 같은 작업만 수행합니다.
자르기 동작.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Jcrop 홈</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">설명서(문서)</a>
</div>
</div>
</div>
</div>
</body>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial2.html
다음과 같이 코드 코드를 복사합니다 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Jcrop » 튜토리얼 » 이벤트 핸들러</title>
<script src="../js/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" />
<link rel="stylesheet" href="demo_files/demos.css" type="text/css" />
<스크립트 유형="텍스트/자바스크립트">
jQuery(함수($){
$('#target').Jcrop({
onChange: showCoords,
onSelect: showCoords,
onRelease: ClearCoords
});
});
// onChange 및 onSelect에서 호출되는 간단한 이벤트 핸들러
// 위의 Jcrop 호출에 따른 이벤트 핸들러
함수 showCoords(c)
{
$('#x1').val(cx);
$('#y1').val(cy);
$('#x2').val(c.x2);
$('#y2').val(c.y2);
$('#w').val(cw);
$('#h').val(ch);
};
함수 ClearCoords()
{
$('#coords 입력').val('');
};
</script>
</head>
<본문>
<div id="외부">
<div>
<div>
<h1>Jcrop - 이벤트 핸들러</h1>
<!-- 이것은 Jcrop을 첨부하는 이미지입니다 -->
<img src="demo_files/pool.jpg" id="target" />
<!-- 이것은 이벤트 핸들러가 채우는 양식입니다 -->
<form id="좌표"
클래스="좌표"
onsubmit="거짓 반환;"
action="http://example.com/post.php">
<div>
<label>X1 <input type="text" size="4" id="x1" name="x1" /></label>
<label>Y1 <input type="text" size="4" id="y1" name="y1" /></label>
<label>X2 <input type="text" size="4" id="x2" name="x2" /></label>
<label>Y2 <input type="text" size="4" id="y2" name="y2" /></label>
<label>W <input type="text" size="4" id="w" name="w" /></label>
<label>H <input type="text" size="4" id="h" name="h" /></label>
</div>
</form>
<p>
<b>기본 이벤트 핸들러의 예.</b> 여기서는 다음과 같이 연결했습니다.
간단한 이벤트 핸들러 호출로 여러 개의 값을 함께 생성합니다.
결과적으로 양식 값은 다음과 같이 실시간으로 업데이트됩니다.
Jcrop의 <em>onChange</em> 핸들러를 사용하여 선택 항목이 변경됩니다.
</p>
<p>
이것이 바로 Jcrop을 전통적인 웹 양식에 얼마나 쉽게 통합할 수 있는지입니다!
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Jcrop 홈</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">설명서(문서)</a>
</div>
</div>
</div>
</div>
</body>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial3.html
다음과 같이 코드 코드를 복사합니다 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Jcrop » 튜토리얼 » 미리보기가 포함된 가로세로 비율</title>
<script src="../js/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" />
<link rel="stylesheet" href="demo_files/demos.css" type="text/css" />
<스크립트 유형="텍스트/자바스크립트">
jQuery(함수($) {
// API와 이미지 크기를 저장하기 위한 변수(이 범위 내)를 생성합니다.
var jcrop_api,boundx,boundy;
$('#target').Jcrop({
onChange: 업데이트미리보기,
onSelect: 업데이트미리보기,
종횡비 : 1
}, 기능() {
// API를 사용하여 실제 이미지 크기를 가져옵니다.
var 경계 = this.getBounds();
경계 x = 경계[0];
경계 = 경계[1];
// jcrop_api 변수에 API를 저장합니다.
jcrop_api = 이것;
});
함수 updatePreview(c) {
if (parseInt(cw) > 0) {
var rx = 100/cw;
var ry = 100/채널;
$('#미리보기').css({
너비 : Math.round(rx *boundx) + 'px',
높이 : Math.round(ry *boundy) + 'px',
marginLeft : '-' + Math.round(rx * cx) + 'px',
marginTop : '-' + Math.round(ry * cy) + 'px'
});
}
}
});
</script>
</head>
<본문>
<div id="외부">
<div>
<div>
<h1>Jcrop - 미리보기 창을 포함한 가로세로 비율</h1>
<테이블>
<tr>
<TD>
<div>
<img src="demo_files/pool.jpg" id="대상"/>
</div>
</td>
<TD>
<div>
<img src="demo_files/pool.jpg" id="미리보기" />
</div>
</td>
</tr>
</table>
<p>
<b>미리보기 창을 구현하는 예.</b> 분명히 가장 시각적인 데모인 미리보기 창은 간단한 jQuery 기반 콜백을 사용하여 Jcrop 외부에서 완전히 수행됩니다. 이러한 유형의 인터페이스는 썸네일이나 아바타를 만드는 데 유용할 수 있습니다. . onChange 이벤트 핸들러는 미리보기 창에서 보기를 업데이트하는 데 사용됩니다.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Jcrop 홈</a> <a href="http://deepliquid.com/content/Jcrop_Manual.html">수동(문서 )</a>
</div>
</div>
</div>
</div>
</body>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial4.html
다음과 같이 코드 코드를 복사합니다 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Jcrop » 튜토리얼 » 애니메이션/전환</title>
<script src="../js/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<script src="../js/jquery.color.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" />
<link rel="stylesheet" href="../css/jquery.Jcrop.extras.css" type="text/css" />
<link rel="stylesheet" href="demo_files/demos.css" type="text/css" />
<스크립트 유형="텍스트/자바스크립트">
jQuery(함수($){
var jcrop_api;
$('#target').Jcrop({
bgFade: 사실,
bg불투명도: .3,
세트선택: [60, 70, 540, 330]
},기능(){
jcrop_api = 이것;
});
$('#fadetog').change(함수(){
jcrop_api.setOptions({
bgFade: this.checked
});
}).attr('체크됨','체크됨');
$('#shadetog').change(함수(){
if (this.checked) $('#shadetxt').slideDown();
else $('#shadetxt').slideUp();
jcrop_api.setOptions({
색상: this.checked
});
}).attr('checked',false);
// 페이지 섹션 정의
var 섹션 = {
anim_buttons: '선택 애니메이션',
bgo_buttons: 'bgOpacity 변경',
bgc_buttons: 'bgColor 변경'
};
// 애니메이션 버튼 정의
var ac = {
anim1: [217,122,382,284],
애니메이션2: [20,20,580,380],
애니메이션3: [24,24,176,376],
애니메이션4: [347,165,550,355],
애니메이션5: [136,55,472,183]
};
// bgOpacity 버튼 정의
var bgo = {
낮음: .2,
중간: .5,
높음: .8,
전체: 1
};
// bgColor 버튼 정의
var bgc = {
빨간색: '#900',
파란색: '#4BB6F0',
노란색: '#F0B207',
녹색: '#46B81C',
흰색 : '흰색',
검은색: '검은색'
};
// 버튼에 대한 필드세트 대상 생성
for(i 섹션)
insertSection(i,섹션[i]);
// 애니메이션 버튼 생성
for(i in ac) {
$('#anim_buttons').append(
$('<버튼 />').append(i).click(animHandler(ac[i])), ' '
);
}
// bgOpacity 버튼 생성
for(i in bgo) {
$('#bgo_buttons').추가(
$('<버튼 />').append(i).click(setoptHandler('bgOpacity',bgo[i])), ' '
);
}
// bgColor 버튼 생성
for(나는 bgc에 있음) {
$('#bgc_buttons').append(
$('<버튼 />').append(i).css({
배경색상: bgc[i],
색상: ((i == '검은색') || (i == '빨간색'))?'흰색':'검은색'
}).click(setoptHandler('bgColor',bgc[i])), ' '
);
}
// 명명된 섹션을 인터페이스에 삽입하는 함수
함수 insertSection(k,v) {
$('#인터페이스').append(
$('<fieldset></fieldset>').attr('id',k).append(
$('<전설></전설>').append(v)
)
);
};
// 옵션 설정 버튼 핸들러
함수 setoptHandler(k,v) {
반환 함수() {
var 선택 = { };
선택[k] = v;
jcrop_api.setOptions(opt);
거짓을 반환;
};
};
// 애니메이션 버튼 핸들러
함수 animHandler(v) {
반환 함수() {
jcrop_api.animateTo(v);
거짓을 반환;
};
};
$('#anim_buttons').append(
$('<버튼></버튼>').append('안녕!').click(function(){
jcrop_api.animateTo(
[300,200,300,200],
함수(){ this.release() }
);
거짓을 반환;
})
);
$('#인터페이스').show();
});
</script>
</head>
<본문>
<div id="외부">
<div>
<div>
<h1>Jcrop - 애니메이션/전환</h1>
<img src="demo_files/sago.jpg" id="target" />
<div id="interface" style="margin: 1em 0;"></div>
<div><label><input type="checkbox" id="fadetog" /> 페이딩 활성화(bgFade: true)</label></div>
<div><label><input type="checkbox" id="shadetog" /> 실험적 셰이더 사용(shade: true)</label></div>
<p id="shadetxt" style="display:none; color:#900;">
<b>실험용 셰이더가 활성화되었습니다.</b>
Jcrop에는 이제 건물을 쉽게 만드는 음영 모드가 포함되어 있습니다.
더 나은 투명 Jcrop 인스턴스는 실험적인 셰이더가 적습니다.
Jcrop의 기본 음영 처리 방법보다 강력하며
이 기능이 필요한 경우에 사용됩니다.
</p>
<p>
<b>애니메이션/전환.</b>
bgColor에 대한 animateTo API 메서드 및 전환 데모
bgOpacity 옵션은 John Resig를 포함해야 합니다.
jQuery <a href="http://plugins.jquery.com/project/color">색상
애니메이션</a> 플러그인이 포함되어 있지 않으면 색상이 바래지 않습니다.
</p>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Jcrop 홈</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">설명서(문서)</a>
</div>
</div>
</div>
</div>
</body>
</html>
/Jcrop/WebContent/tapmodo-Jcrop/demos/tutorial5.html
다음과 같이 코드 코드를 복사합니다 .
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 엄격//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<머리>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>Jcrop » 튜토리얼 » API 데모</title>
<script src="../js/jquery.min.js" type="text/javascript"></script>
<script src="../js/jquery.Jcrop.js" type="text/javascript"></script>
<link rel="stylesheet" href="../css/jquery.Jcrop.css" type="text/css" />
<link rel="stylesheet" href="demo_files/demos.css" type="text/css" />
<스타일 유형="텍스트/css">
.optdual { 위치: 상대 }
.optdual .offset { 위치: 왼쪽: 18em }
.optlist 라벨 { 너비: 16em; 블록 }
#dl_links { 여백 상단: .5em }
</style>
<스크립트 유형="텍스트/자바스크립트">
jQuery(함수($){
// jcrop_api 변수는 다음에 대한 참조를 보유합니다.
// Jcrop이 인스턴스화되면 Jcrop API입니다.
var jcrop_api;
// 이 예에서는 Jcrop이 부착되거나 분리될 수 있으므로
// 사용자의 변덕에 따라 호출을 함수로 래핑했습니다.
initJcrop();
// 함수는 매우 간단합니다.
함수 initJcrop()//{{{
{
// Jcrop이 필요한 인터페이스 요소를 숨깁니다.
// (로컬 사용자 인터페이스 부분을 위한 것입니다.)
$('.requiresjcrop').hide();
//일반적인 방식으로 Jcrop을 호출합니다.
$('#target').Jcrop({
onRelease: 릴리스 확인
},기능(){
jcrop_api = 이것;
jcrop_api.animateTo([100,100,400,300]);
// "활성화"에 대한 인터페이스를 설정하고 표시합니다.
$('#can_click,#can_move,#can_size').attr('checked','checked');
$('#ar_lock,#size_lock,#bg_swap').attr('checked',false);
$('.requiresjcrop').show();
});
};
//}}}
// API를 사용하여 자르기 크기 찾기
// 그런 다음 무작위 선택을 생성합니다.
// 이 함수는 setSelect 및 animateTo 버튼에서 사용됩니다.
// 주로 데모 목적으로 사용됨
함수 getRandom() {
var 희미 = jcrop_api.getBounds();
반품 [
Math.round(Math.random() * 희미[0]),
Math.round(Math.random() * 희미[1]),
Math.round(Math.random() * 희미[0]),
Math.round(Math.random() * 희미[1])
];
};
// 이 함수는 onRelease 핸들러에 바인딩됩니다...
// 특정 상황(예: minSize를 설정한 경우)
// 및 AspectRatio를 함께 사용하면 실수로 손실될 수 있습니다.
// 선택 항목 생성을 다시 활성화하는 콜백입니다.
// 그런 경우에 이 작업을 수행해야 하는 이유는 다음과 같습니다.
// 버그가 있는 동작이므로 어떤 방식으로든 트랩하는 것이 좋습니다.
//allowSelect를 사용하는 경우 onRelease 콜백: false
함수 releaseCheck()
{
jcrop_api.setOptions({allowSelect: true });
$('#can_click').attr('checked',false);
};
//인터페이스 버튼 연결
// 코드가 많아 보이지만 간단합니다.
$('#setSelect').click(함수(e) {
// 무작위 선택을 설정합니다.
jcrop_api.setSelect(getRandom());
});
$('#animateTo').click(function(e) {
// 무작위 선택 항목에 애니메이션 적용
jcrop_api.animateTo(getRandom());
});
$('#release').click(함수(e) {
// 해제 방법으로 선택 항목을 지웁니다.
jcrop_api.release();
});
$('#disable').click(function(e) {
// Jcrop 인스턴스 비활성화
jcrop_api.disable();
// 비활성화된 상태를 반영하도록 인터페이스를 업데이트합니다.
$('#활성화').show();
$('.requiresjcrop').hide();
});
$('#enable').click(function(e) {
// Jcrop 인스턴스를 다시 활성화합니다.
jcrop_api.enable();
// 활성화된 상태를 반영하도록 인터페이스를 업데이트합니다.
$('#활성화').hide();
$('.requiresjcrop').show();
});
$('#rehook').click(function(e) {
// 이 버튼은 Jcrop이 파괴되었을 때 표시됩니다.
// 재부착을 수행하고 UI를 업데이트합니다.
$('#rehook,#enable').hide();
initJcrop();
$('#unhook,.requiresjcrop').show();
거짓을 반환;
});
$('#unhook').click(function(e) {
// Jcrop 위젯을 삭제하고 원래 상태로 복원합니다.
jcrop_api.destroy();
// 연결되지 않은 상태를 반영하도록 인터페이스를 업데이트합니다.
$('#unhook,#enable,.requiresjcrop').hide();
$('#rehook').show();
거짓을 반환;
});
// 세 개의 이미지 교환 버튼을 연결합니다.
$('#img1').click(함수(e) {
jcrop_api.setImage('demo_files/sago.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
거짓을 반환;
});
$('#img2').click(함수(e) {
jcrop_api.setImage('demo_files/pool.jpg');
jcrop_api.setOptions({ bgOpacity: .6 });
거짓을 반환;
});
$('#img3').click(함수(e) {
jcrop_api.setImage('demo_files/sago.jpg',function(){
this.setOptions({
bg불투명도: 1,
외부 이미지: 'demo_files/sagomod.jpg'
});
this.animateTo(getRandom());
});
거짓을 반환;
});
// 체크박스는 체크된 값에 따라 옵션을 설정합니다.
// 새 옵션 객체를 전달하여 옵션이 변경됩니다.
// 또한 이상한 동작을 방지하기 위해 초기에 검사합니다.
// 이는 Jcrop의 기본 초기 상태와 일치합니다.
$('#can_click').change(함수(e) {
jcrop_api.setOptions({allowSelect: !!this.checked });
jcrop_api.focus();
});
$('#can_move').change(함수(e) {
jcrop_api.setOptions({allowMove: !!this.checked });
jcrop_api.focus();
});
$('#can_size').change(함수(e) {
jcrop_api.setOptions({allowResize: !!this.checked });
jcrop_api.focus();
});
$('#ar_lock').change(함수(e) {
jcrop_api.setOptions(this.checked?
{ 양상비율: 4/3 }: { 양상비율: 0 });
jcrop_api.focus();
});
$('#size_lock').change(함수(e) {
jcrop_api.setOptions(this.checked? {
최소 크기: [80, 80],
최대 크기: [350, 350]
}: {
최소 크기: [0, 0],
최대 크기: [0, 0]
});
jcrop_api.focus();
});
});
</script>
</head>
<본문>
<div id="외부">
<div>
<div>
<h1>Jcrop - API 데모</h1>
<img src="demo_files/sago.jpg" id="target" />
<div 스타일="마진: .8em 0 .5em;">
<스팬>
<button id="setSelect">설정선택</button>
<button id="animateTo">animateTo</button>
<button id="release">해제</button>
<button id="disable">비활성화</button>
</span>
<button id="enable" style="display:none;">재활성화</button>
<button id="unhook">파괴하세요!</button>
<button id="rehook" style="display:none;">Jcrop 첨부</button>
</div>
<필드셋>
<legend>옵션 토글</legend>
<div>
<label><input type="checkbox" id="ar_lock" />가로세로 비율</label>
<label><input type="checkbox" id="size_lock" />minSize/maxSize 설정</label>
</div>
<div>
<label><input type="checkbox" id="can_click" />새 선택 허용</label>
<label><input type="checkbox" id="can_move" />선택 항목을 이동할 수 있습니다</label>
<label><input type="checkbox" id="can_size" />선택 크기 조정 가능</label>
</div>
</fieldset>
<fieldset 스타일="마진: .5em 0;">
<legend>이미지 변경</legend>
<스팬>
<button id="img2">풀</button>
<button id="img1">사고</button>
<button id="img3">외부 이미지가 포함된 Sago</button>
</span>
</fieldset>
<div id="dl_links">
<a href="http://deepliquid.com/content/Jcrop.html">Jcrop 홈</a> |
<a href="http://deepliquid.com/content/Jcrop_Manual.html">설명서(문서)</a>
</div>
</div>
</div>
</div>
</body>
</html>