html5 캔버스에서이 문제가 발생합니다. 이미지를로드 할 때 EaselJS를 사용하고 있습니다.캔버스 교차 도메인 픽셀 오류
uncaught exception: An error has occurred. This is most likely due to security restrictions on reading canvas pixel data with local or cross-domain images.
: 나는 마우스 이벤트의 종류를 추가 할 때
는하지만 (온 클릭, onMouseover와, onMouseOut) 난 내 마우스를 이동하는 순간부터 이미지의 parentcontainer에는 EaselJS이 오류가 스팸 메일 그것은 IIS 서버에서 실행 중이며 내가 얻은 이미지는 다른 도메인의 이미지입니다. --disable-web-security를 사용하여 Chrome에서 작동하도록 할 수 있습니다. 그러나 나는 그것을 피하고 싶습니다.
프록시 스크립트에 관한 내용을 읽었을 때이 문제를 해결하는 데 도움이 될 수 있지만 정확히 어떻게 구현할 수 있는지 잘 모르겠습니다.
수정 사항에 대한 제안 사항이 있으십니까?
편집 : 해결되었습니다!
<%@ WebHandler Language="C#" Class="getSharepointImage" %>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.IO;
using System.Drawing;
public class getSharepointImage : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
string proxyURL = string.Empty;
try
{
proxyURL = HttpUtility.UrlDecode(context.Request.QueryString["u"].ToString());
}
catch { }
if (proxyURL != string.Empty)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(proxyURL);
//request.Credentials = new NetworkCredential("username", "password"); //needed if you wish to access something like sharepoint
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode.ToString().ToLower() == "ok")
{
string contentType = "img/png";
Stream content = response.GetResponseStream();
StreamReader contentReader = new StreamReader(content);
context.Response.ContentType = contentType;
var outStream = context.Response.OutputStream;
Bitmap myImage = new Bitmap(System.Drawing.Image.FromStream(response.GetResponseStream()));
MemoryStream writeStream = new MemoryStream();
myImage.Save(outStream, System.Drawing.Imaging.ImageFormat.Png);
writeStream.WriteTo(outStream);
myImage.Dispose();
}
}
}
public bool IsReusable {
get {
return false;
}
}
}