首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CamanJS更改镜像?

如何使用CamanJS更改镜像?
EN

Stack Overflow用户
提问于 2013-02-23 04:51:20
回答 3查看 5K关注 0票数 7

我有多个图像,我想在不同的时间点将它们加载到单个<canvas>元素中,然后使用CamanJS对它们进行操作。我可以让第一张图片看起来像这样:

代码语言:javascript
复制
Caman('#canvas-element', '/images/one.jpg');

但是,当我随后尝试使用以下代码更新相同的元素时,它不起作用。

代码语言:javascript
复制
Caman('#canvas-element', '/images/two.jpg');

有没有办法重置/清除/刷新画布并加载新的图像数据到其中,或者我真的需要为我想要加载的每个图像创建单独的<canvas>元素?我更喜欢单个元素,因为我不想吃光所有的内存。

EN

回答 3

Stack Overflow用户

发布于 2013-08-26 01:27:06

从IMG或CANVAS元素中删除Caman属性(data- Caman -id),更改图像,然后重新渲染Caman。

代码语言:javascript
复制
document
  .querySelector('#view_image')
  .removeAttribute('data-caman-id');

const switch_img = '/to/dir/img.png';

Caman("#view_image", switch_img, function() {
  this.render();
});
票数 15
EN

Stack Overflow用户

发布于 2014-09-05 16:10:32

希望遵循的代码可以帮助其他有同样需求的人。

代码语言:javascript
复制
function loadImage(source) {
    var canvas = document.getElementById('image_id');
    var context = canvas.getContext('2d');
    var image = new Image();
    image.onload = function() {
        context.drawImage(image, 0, 0, 960, 600);
    };
    image.src = source;
}

function change_image(source) {
    loadImage(source);
    Caman('#image_id', source, function () {
        this.reloadCanvasData();
         this.exposure(-10);
         this.brightness(5);
        this.render();
    });
}
票数 4
EN

Stack Overflow用户

发布于 2013-04-07 07:09:08

只是通过大量的试验和错误才弄明白了这一点,然后就是一瞬间!

我没有直接在html中创建画布,而是创建了一个容器,然后执行以下操作:

代码语言:javascript
复制
var retStr = "<canvas id=\"" + myName + "Canvas\"></canvas>";
document.getElementById('photoFilterCanvasContainer').innerHTML = retStr;

Caman("#" + myName + "Canvas", myUrl, function() {
    this.render();
});

您希望canvas id在每次使用新图像访问Caman函数时都是唯一的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15032973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档