Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 图像在画布上失去了CamanJS的效果_Javascript_Jquery_Html_Image_Canvas - Fatal编程技术网

Javascript 图像在画布上失去了CamanJS的效果

Javascript 图像在画布上失去了CamanJS的效果,javascript,jquery,html,image,canvas,Javascript,Jquery,Html,Image,Canvas,我有一个画布,它可以处理用插件在上面绘制的图像,而且效果非常好。但是如果我手动操作画布(没有插件的帮助),图像就会失去效果。例如,如果我在图像中添加一个过滤器(例如Vintage),效果很好,但是如果我使用translate和scale旋转画布,画布会反转,但图像会失去效果。似乎通过插件对图像进行的每一次更改都会保存其当前状态,因此,如果不使用插件进行更改,效果就会丢失。如何在保持图像效果的同时做到这一点 为了增加效果,请使用与插件站点相同的示例,因为反转画布的代码是(scripts.js):

我有一个画布,它可以处理用插件在上面绘制的图像,而且效果非常好。但是如果我手动操作画布(没有插件的帮助),图像就会失去效果。例如,如果我在图像中添加一个过滤器(例如Vintage),效果很好,但是如果我使用
translate
scale
旋转画布,画布会反转,但图像会失去效果。似乎通过插件对图像进行的每一次更改都会保存其当前状态,因此,如果不使用插件进行更改,效果就会丢失。如何在保持图像效果的同时做到这一点

为了增加效果,请使用与插件站点相同的示例,因为反转画布的代码是(scripts.js):

filtro\u width
变量和
filtro
对应于画布上绘制的图像

关于HTML:

<canvas id="filtrar" width="640" height="255"></canvas>

<button id="vintage">Vintage Effect</button>
<button id="inverter_foto">Reverse</button>

<script type="text/javascript" src="/js/jquery-2.1.3.min.js"></script>
</script>
<script type="text/javascript" src="/js/caman.full.min.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>

复古效应
逆转
例如:

如果确实在Caman库之外操纵画布,则需要使用该方法重新初始化存储在Caman对象中的imageData,否则,它只使用第一个对象+它自己更新的内容

vintage.onclick=function(){
卡曼(“过滤器”,函数(){
this.vintage().render();
});
};
逆变器\u foto.onclick=函数(){
var c=$(“#过滤器”)[0];
var clone=c.cloneNode(真);
var ctx=clone.getContext(“2d”);
ctx.平移(c.宽度,0);
ctx.刻度(-1,1);
ctx.drawImage(c,0,0);
var oCtx=c.getContext('2d');
oCtx.clearRect(0,0,c.宽度,c.高度);
oCtx.drawImage(克隆,0,0);
如果(勾选,勾选){
卡曼(“过滤器”,函数(){
此参数为.reloadCanvasData();
});
}
};
var filtro=新图像();
filtro.crossOrigin='Anonymous';
变量filtro_width=filtrar.width/2;
filtro.onload=函数(){
filtrar.getContext('2d').drawImage(this,0,0,filtrar.width,filtrar.height);
};
filtro.src=”https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png";

首先还原图像,然后应用效果

逆转 复古效应 重新加载画布数据
@kaido我用一个例子编辑了这个问题。但是,添加效果的代码与(下面的按钮)相同,而反转画布的代码是问题上的代码。这就是问题的全部,也是唯一的一部分,在反转画布后再次应用camanjs的效果如何?再次编辑@Kaiido@jack3694078如果我在反转画布后再次应用效果,他将应用效果并失去其反转完美!谢谢(请等12个小时,等我给他送报酬)
<canvas id="filtrar" width="640" height="255"></canvas>

<button id="vintage">Vintage Effect</button>
<button id="inverter_foto">Reverse</button>

<script type="text/javascript" src="/js/jquery-2.1.3.min.js"></script>
</script>
<script type="text/javascript" src="/js/caman.full.min.js"></script>
<script type="text/javascript" src="/js/scripts.js"></script>