【问题标题】:How to get a subimage of a subimage using getImageData in HTML5 canvas如何在 HTML5 画布中使用 getImageData 获取子图像的子图像
【发布时间】:2012-04-12 06:14:46
【问题描述】:

使用 HTML5 画布,您可以轻松获取图像的子图像。如下:

var imageData = context.getImageData(5, 5, 10, 10); var d = imageData.data

但是,似乎没有办法获取此数据的另一个子图像。

假设我想这样做: var imageData = context.getImageData(0, 0, 2, 2) 之前返回的子图。

这实际上是 (5, 5, 2, 2);

大多数图形库都可以递归地深入到带有子图像的图像中。 canvas有类似的吗?

【问题讨论】:

    标签: html canvas


    【解决方案1】:

    您可以创建自己的 rect 对象并使用它来进行子选择,但直接从初始画布元素中提取数据。

    类似

    function rect(x, y, w, h) {
        this.x = x;
        this.y = y;
        this.width = w;
        this.height = h;
    }
    
    rect.prototype.getRect = function(x, y, w, h) {
        return new rect(this.x + x, this.y + y, w, h);
    };
    
    var initial = new rect(5,5,10,10);
    var second = initial.getRect(0,0,2,2);
    

    或者,您可以在内存中创建一个画布元素,绘制第一张图像,然后在新的画布上下文中调用 getImageData..

    【讨论】:

    • +1 表示您的“替代”建议;这就是我要做的。 (您可能会详细说明drawImage 仅允许您绘制子区域这一事实。)
    猜你喜欢
    • 2013-12-14
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    • 2014-10-02
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多