Edit: Lấy gợi ý dennmat của cân nhắc, tôi đã cố gắng đơn giản hóa hình ảnh của tôi mua lại kịch bản xuống một vài dòng sử dụng Image()
:Tôi có thể đọc dữ liệu nhị phân đúng cách thông qua XDomainRequest không?
window.onload = function(){
var img;
capture_canvas = document.createElement('canvas');
capture_canvas.width = 1000;
capture_canvas.height = 1000;
document.documentElement.appendChild(capture_canvas);
img = new Image();
img.crossOrigin = "Anonymous";
img.src = "http://www.shangalulu.com/get_resource_no_64.php?url=http://www.shangalulu.com/users/1196739508/post/41-1330377498/41-1330377498_thumb.jpg";
img.onload = function() {
var context, canvas_img;
context = capture_canvas.getContext('2d');
context.drawImage(img, 0, 0, 255, 255);
canvas_img = context.getImageData(0, 0, capture_canvas.width, capture_canvas.height);
}
}
Trong khi các công trình này dành cho Chrome và Firefox, điều này không cho IE9. Giải pháp được đề cập trong liên kết sau dường như không áp dụng cho trường hợp này. Uncaught Error: SECURITY_ERR: DOM Exception 18 when I try to set a cookie
Tính năng cors có trong Image()
được hỗ trợ bởi IE9 không?
Tôi đã gặp phải một vấn đề nhỏ.
Hình ảnh trên thực sự là một tập tin có chứa các tiêu đề png tiêu chuẩn, tiếp theo là 255 byte đi từ 255 xuống 0 (hai lần). Ý tưởng là để xem cách Internet Explorer 9 xử lý việc nhận dữ liệu nhị phân thông qua một yêu cầu AJAX. Vì vậy, đây là vấn đề của tôi: Tôi đã nhận thấy rằng khi tôi nhận được một byte trên máy khách lớn hơn 127, giá trị được mặc định là 253. Có cách nào để IE có thể đọc các byte mở rộng với đúng không giá trị?
Một vài điều cần lưu ý:
1) Chúng tôi không sử dụng bất kỳ loại khung javascript nào. Đó là một yêu cầu mà chúng tôi làm điều này chỉ với xương trần javascript.
2) Mục đích của thử nghiệm này là tạo một cách sạch sẽ để có được hình ảnh để tôi có thể đặt hình ảnh lên khung hình mà không làm nó vỡ. Đôi khi những hình ảnh này đến từ máy chủ hình ảnh được lưu trữ bên ngoài của chúng tôi, các lần khác nó sẽ đến từ một máy chủ lưu trữ khác mà chúng tôi không kiểm soát được.
đính kèm dưới đây là kịch bản thử nghiệm của tôi:
var request;
window.onload = function(){
request = new XMLHttpRequest();
if (window.XDomainRequest) {
request = new XDomainRequest();
}
request.open('GET',
"http://www.shangalulu.com/get_resource_no_64.php?url=
http://www.shangalulu.com/resources/images/sample/sample.png", true);
request.onload = function()
{
var binary, i, response;
response = this.responseText;
binary = "";
if (this.contentType)
{
document.documentElement.appendChild(
document.createTextNode(this.contentType));
document.documentElement.appendChild(document.createElement('br'));
}
for(i=0; i < response.length; i++) {
binary = "Line " + (i) + " --> " + ((response.charCodeAt(i)) & 0xff);
document.documentElement.appendChild(document.createTextNode(binary));
document.documentElement.appendChild(document.createElement('br'));
}
};
request.send();
}
Có gì sai với 'Hình ảnh()'? Xem ví dụ: https://developer.mozilla.org/en/Canvas_tutorial/Using_images – dennmat
Về cơ bản bạn sẽ tự chụp chính mình ở chân để thao tác, quản lý và vẽ dữ liệu hình ảnh trong JS mà không cần sử dụng trình duyệt tích hợp sẵn tiện ích cho nó. Nó sẽ thực sự chậm và bạn có thể sẽ gặp phải vô số vấn đề đặc biệt là một khi bạn nhận được vào sự minh bạch và quay. – dennmat
Tôi phải bỏ lỡ sự hỗ trợ xuất xứ chéo lần cuối cùng tôi nhìn vào Image(). Cảm ơn vì tiền hỗ trợ! Để chụp chân, tôi không hoàn toàn chắc chắn về ý nghĩa của các tiện ích tích hợp trình duyệt. Tất cả những gì tôi định làm ở đây là render một hình ảnh đơn giản lên một khung hình có thể được tắt cho máy chủ. – Axle