camanJS를 사용하여 이미지에 필터를 적용하면 두 가지 필터를 모두 클릭해도 원본 이미지로 돌아가서 이미지에 적용해야하지만 현재 그것은 첫 번째 필터가있는 이미지에 두 번째 필터를 넣습니다. 클릭하면 난이 이미지에 표시하는 데 사용됩니다 아이디 photoCanvas와 캔버스를 만들고 나는 다음과 같은 자바 스크립트 부분을 트리거 다른 필터 목록을 가지고원본 이미지에 camanJS 필터 적용
<table>
<tr>
<td><div id="photo"><canvas id="photoCanvas" width="500" height="500">Uw browser ondersteund geen canvas</canvas></div></td>
<td><div id="filterContainer">
<h4>Please select your photo effect.</h4>
<ul id="filters">
<li> <a href="#" id="normal">Normal</a> </li>
<li> <a href="#" id="vintage">Vintage</a> </li>
<li> <a href="#" id="lomo">Lomo</a> </li>
<li> <a href="#" id="clarity">Clarity</a> </li>
<li> <a href="#" id="sinCity">Sin City</a> </li>
<li> <a href="#" id="sunrise">Sunrise</a> </li>
<li> <a href="#" id="pinhole">Pinhole</a> </li>
</ul>
</div></td>
</tr>
</table>
:
이 내 HTML 부분입니다
$(function() {
Caman("#photoCanvas", "./images/183411_1871156496150_3955828_n.jpg", function() {
this.render();
});
var filters = $('#filters li a');
// originalCanvas = $('#canvas'),
// photo = $('#photo');
filters.click(function(e){
e.preventDefault();
var f = $(this);
if(f.is('.active')){
// Apply filters only once
return false;
}
filters.removeClass('active');
f.addClass('active');
// Listen for clicks on the filters
var effect = $.trim(f[0].id);
Caman("#photoCanvas", "images/183411_1871156496150_3955828_n.jpg", function() {
// If such an effect exists, use it:
if(effect in this){
this[effect]();
this.render();
}
});
});
});
필터를 적용 할 때 특정 이미지를 사용해야하지만 필터를 계속 스태킹해야한다는 것을 프로그램에 알리려고했습니다.
이 문제를 해결하여 모든 필터를 쌓을 수는 없지만 이미지를 원래대로 재설정 한 다음 새 필터를 적용 할 수 있습니까?
예이 트릭은 대단히 감사했습니다! –
이것을 지연시키고 싶다면'this.revert()'에'false'를 넘겨 줄 필요가 있습니다 (그래서'this.revert (false)'). 이렇게하면 CamanJS는'
@LuisNell : revert 함수의 updateContext 인수는 출혈 Egde 패키지에서만 사용할 수 있습니다. 현재 안정 버전 인 4.1.1에는이 옵션이 없습니다! –