如何将 Array 转换为 CanvasPixelArray 或创建 CanvasPixelArray 对象?
我在 PHP 中获得了图像的像素数据,我想将其传输到 Javascript。
我唯一的问题是 PHP 返回一个我在 Javascript 数组中转换的字符串,而 ImageData.data 不是数组,而是 CanvasPixelArray。
var cvsPixelAr = [arStrFromPHP];
var imgData = ctx.createImageData(dim[0], dim[1]);
imgData.data = cvsPixelAr;
我也尝试过“new CanvasPixelArray();”,但仍然没有任何结果。
有人知道解决方法吗? 如果没有,我将使用网络工作者来更改每个值:-/。
谢谢
I got pixel data of an image in PHP that I would like to transfer to Javascript.
My only problem is that PHP returns a string that I convert in Javascript Array and the ImageData.data is not an Array, but a CanvasPixelArray.
var cvsPixelAr = [arStrFromPHP];
var imgData = ctx.createImageData(dim[0], dim[1]);
imgData.data = cvsPixelAr;
I also tried "new CanvasPixelArray();", but still nothing.
Someone knows a work around?
If not I will use web workers to change every single value :-/.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信您必须将这些项目分段复制到最终的数据数组中:
I believe you will have to copy the items over piecewise into the final data array:
对我来说,这非常有效:
不要忘记必须应用这个公式:
您绝对不需要复制整个数组。查看有关此主题的 MDN 文档。
这是一个示例,我使用它来调整图像大小,无需 DOM API,仅使用原始像素数据: https://jsfiddle .net/n3drn8v9/4/
For me, this worked quite well:
Don't forget that this formula must apply:
You definitelly do not need to copy whole array. Check MDN docs on this topic.
Here's an example where I use this to resize image without DOM API, just using the raw pixel data: https://jsfiddle.net/n3drn8v9/4/