jjzjj

getImageData

全部标签

javascript - getImageData 丢失的透明度 - HTML5 2d 上下文

我注意到getImageData有一个奇怪的问题;获取图像数据时,图像的透明度似乎被忽略了。由于在获取图像数据之前需要将任何图像绘制到canvas上,因此我认为这是一个问题,因为所讨论的canvas是不透明的。但我错了,因为在drawImage中使用canvas作为参数可以保持透明度。这是我加载图片的方式;varload_image=function(name,url,holder,callback){varimg=newImage();img.src=url;img.addEventListener('load',function(e){varcanvas=make_canvas(e

javascript - HTML5 Canvas getImageData 安全错误

我想将彩色图像更改为灰度图像,但在尝试使用getImageData时出现安全错误。UncaughtSecurityError:Failedtoexecute'getImageData'on'CanvasRenderingContext2D':Thecanvashasbeentaintedbycross-origindata.我知道到处都在讨论这个错误,但是没有一个有明确的解决方案。请帮忙!functiongrayscale(){varmyCanvas=document.getElementById("c1");varmyCanvasContext=myCanvas.getContext

html - 本地主机上的 context.getImageData()?

我有以下代码片段,我正在尝试从本地主机(OSX,运行XAMPP)运行它:varcanvas=document.getElementById('mycanvas');varcx=canvas.getContext('2d');varmyImg=newImage();myImg.src='images/lion.jpg';$(myImg).load(function(){cx.drawImage(myImg,0,0);varimgData=cx.getImageData(0,0,150,150);});但是当我运行它时,我从控制台收到了这个错误:Unabletogetimagedatafr

javascript - getImageData 总是返回 0

我一直在尝试制作一个脚本来比较HTML5和Javascript中的两个图像。但出于某种奇怪的原因,它总是返回图像完全相同。在查看问题可能出在哪里时,我发现由于某种奇怪的原因,每个像素的每个数据值都返回了“0”。那么,知道我做错了什么吗?:)出于某种原因,我觉得它很简单,但我刚刚了解了canvas元素,所以是的。这是我的代码:functioncompareImg(){varc1=document.getElementById("c");varctx1=c1.getContext("2d");varc2=document.getElementById("c2");varctx2=c2.ge

javascript - 如何使用 getImageData() 获得非矩形形状?

html5canvas标签有与之关联的javascriptgetImageData()函数,它的返回值是一个包含封闭像素的矩形。但是我需要从我的原始Canvas取回一个三Angular形图像,而不是一个矩形,由我选择的点包围。有人知道如何从html5Canvas中获取三Angular形图像吗? 最佳答案 如果是为了提高效率,那么不您不能使用getImageData()获得非矩形形状。然而,如果你想要这个功能,那么你可以clip像这样(JSLintExample):varimg1=newImage();img1.onload=func

HTML5 getImageData 的 javascript 内存泄漏

我一直在努力为我正在创建的javascript游戏制作一些视觉效果,我注意到我用来调整Sprite颜色的一段代码使我的浏览器内存使用率上升及以上,似乎没有限制。您可以在此处查看代码和内存泄漏:http://timzook.tk/javascript/test.html这种内存泄漏只发生在我的updateimage()函数中,当我每帧(通过setInterval)从我的Canvas上下文调用getImageData以使新的ImageData对象重新着色时。我原以为javascript的垃圾收集器会破坏旧的,但如果不是,我不知道如何手动销毁它。任何帮助弄清楚它为什么这样做或如何解决它的帮助

javascript - 糟糕的 Canvas GetImageData()/PutImageData() 在移动设备上的性能

我正在做一个HTML5小游戏,在map开头加载Sprite时,我使用GetImageData()进行一些处理/遍历所有图像/PutImageData()。这在我的PC上运行得非常好,但是,在我的手机上它慢得可怕。PC:5-6msiPhone4:300-600msAndroidHTCDesireS:2500-3000ms我一直在做一些非常基本的基准测试,GetImageData和PutImageData都运行得非常快,循环内容需要很长时间。现在,我显然预计手机会变慢,但1000倍听起来有点过分,而且在我的HTC上加载大约需要4分钟,所以这是行不通的。此外,游戏中的其他所有内容都以非常合理

HTML5 Canvas getImageData 和同源策略

我有一个运行在pixie.strd6.com的站点,图像通过AmazonS3托管,并带有images.pixie.strd6.com的CNAME。我希望能够将这些图像绘制到HTML5Canvas上并调用getImageData方法,但它抛出Error:SECURITY_ERR:DOMException18我试过设置window.domain="pixie.strd6.com",但这没有任何效果。此外,$.get("http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982",function(data){console.lo

javascript - 为什么 HTML Canvas getImageData() 不返回刚刚设置的完全相同的值?

当使用putImageData将像素写入HTMLCanvas上下文时,我发现当我再次获取它们时像素值并不完全相同。我放了一个sampletestpage显示问题。归结起来,问题是:varid=someContext.getImageData(0,0,1,1);id.data[0]=id.data[3]=64;//25%red,25%alphaid.data[1]=id.data[2]=0;//NoblueorgreensomeContext.putImageData(id,0,0);varnewData=someContext.getImageData(0,0,1,1);console

javascript - Canvas getImageData 在某些移动设备上返回不正确的数据

我正在开发具有一些基于视频帧的特殊功能的Canvas视频播放器。为了克服视频HTML5标签中不可靠的计时,我们使用的视频在每个帧中嵌入了一个条形码,指示当前帧编号。使用canvasgetImageData方法,我可以抓取像素并读取条形码以获取帧号。这很好用,我有一个JSFiddle证明它有效(我无法绕过这个fiddle中的CORS将视频提供到Canvas上,所以要看到它工作,你必须在本地下载示例视频,然后通过按钮上传。不理想,但它有效).在某些移动设备(目前只有Android)上,这种逻辑被打破了。getImageData返回不正确的值。它在我的SamsungGalaxyS5v6.0.