How to use canvas to modify images from another domain?(如何使用画布修改来自另一个域的图像?)
本文介绍了如何使用画布修改来自另一个域的图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我使用 image.src = "L2xvY2FsL2RpcmVjdG9yeS9pbWFnZS5wbmc="
时使用的代码,但如果我使用 image.src="aHR0cDovL3JlbW90ZS9wYXRo"
它会加载图像,但其余的 mousemove 功能不起作用.你是怎么解决的?
This is the code i am using when i have image.src = "L2xvY2FsL2RpcmVjdG9yeS9pbWFnZS5wbmc="
works but if i use image.src="aHR0cDovL3JlbW90ZS9wYXRo"
it loads the image but rest mousemove function do not work. How do you fix it?
复制粘贴到 test.htm
<script type="text/javascript" src="aHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjYuNC9qcXVlcnkubWluLmpz"></script>
<script>
$(document).ready(function()
{
var image = new Image();
var ctx = $('#canvas')[0].getContext("2d");
image.src = "aHR0cDovL3d3dy5nb29nbGUuY29tL2ludGwvZW5fY29tL2ltYWdlcy9zcnByL2xvZ28zdy5wbmc=";
//image.src = "L2FnZW50cy9nb29nbGUucG5n";
image.width="340";
image.height="220";
image.onload = function ()
{
ctx.drawImage(image, 0, 0, image.width, image.height);
}
$('#canvas').mousemove(function(e)
{
var canvasOffset = $(this).offset();
var canvasX = Math.floor(e.pageX - canvasOffset.left);
var canvasY = Math.floor(e.pageY - canvasOffset.top);
var imageData = ctx.getImageData(canvasX, canvasY, 1, 1);
var pixel = imageData.data;
var pixelColor = "rgba("+pixel[0]+", "+pixel[1]+", "+pixel[2]+", "+pixel[3]+")";
$(document.body).css('background-color',pixelColor);
});
});
</script>
<body>
<canvas id="canvas" width="340" height="220"></canvas>
<body>
跟进(复制粘贴):
<script type="text/javascript" src="aHR0cDovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjYuNC9qcXVlcnkubWluLmpz"></script>
<script type="text/javascript" src="aHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9iZXRhbWF4L2dldEltYWdlRGF0YS9tYXN0ZXIvanF1ZXJ5LmdldGltYWdlZGF0YS5taW4uanM="></script>
<script>
$(document).ready(function()
{
// var image = new Image();
// var ctx = $('#canvas')[0].getContext("2d");
// //image.src = "aHR0cDovL3d3dy5nb29nbGUuY29tL2ludGwvZW5fY29tL2ltYWdlcy9zcnByL2xvZ28zdy5wbmc=";
// image.src = "L2FnZW50cy9nb29nbGUucG5n";
//
// image.width="340";
// image.height="220";
// image.onload = function ()
// {
// ctx.drawImage(image, 0, 0, image.width, image.height);
// }
// $('#canvas').mousemove(function(e)
// {
// var canvasOffset = $(this).offset();
// var canvasX = Math.floor(e.pageX - canvasOffset.left);
// var canvasY = Math.floor(e.pageY - canvasOffset.top);
// var imageData = ctx.getImageData(canvasX, canvasY, 1, 1);
// var pixel = imageData.data;
//
// var pixelColor = "rgba("+pixel[0]+", "+pixel[1]+", "+pixel[2]+", "+pixel[3]+")";
// $(document.body).css('background-color',pixelColor);
//
// });
$.getImageData({
url: "http://www.google.com/intl/en_com/images/srpr/logo3w.png",
success: function(image){
// Set up the canvas
var can = document.getElementsByTagName('canvas')[0];
var ctx = can.getContext('2d');
// Set the canvas width and heigh to the same as the image
$(can).attr('width', image.width);
$(can).attr('height', image.height);
// Draw the image on to the canvas
ctx.drawImage(image, 0, 0, image.width, image.height);
// Get the image data
var image_data = ctx.getImageData(0, 0, image.width, image.height);
var image_data_array = image_data.data;
// Invert every pixel
//for (var i = 0, j = image_data_array.length; i < j; i+=4) {
//image_data_array[i] = 255 - image_data_array[i];
//image_data_array[i+1] = 255 - image_data_array[i+1];
//image_data_array[i+2] = 255 - image_data_array[i+2];
/
沃梦达教程
本文标题为:如何使用画布修改来自另一个域的图像?


猜你喜欢
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01
- Flexslider 箭头未正确显示 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Fetch API 如何获取响应体? 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01