Anda tidak akan dapat menggambar gambar langsung dari server lain ke dalam kanvas dan kemudian gunakan getImageData
. Ini masalah keamanan dan kanvas akan dianggap "ternoda".
Apakah ini akan berhasil bagi Anda untuk menyimpan salinan gambar ke server Anda menggunakan PHP dan kemudian hanya memuat gambar baru? Misalnya, Anda dapat mengirim URL ke skrip PHP dan menyimpannya ke server Anda, lalu mengembalikan nama file baru ke javascript Anda seperti ini:
<?php //The name of this file in this example is imgdata.php
$url=$_GET['url'];
// prevent hackers from uploading PHP scripts and pwning your system
if(!@is_array(getimagesize($url))){
echo "path/to/placeholderImage.png";
exit("wrong file type.");
}
$img = file_get_contents($url);
$fn = substr(strrchr($url, "/"), 1);
file_put_contents($fn,$img);
echo $fn;
?>
Anda akan menggunakan skrip PHP dengan beberapa javascript ajax seperti ini:
xi=new XMLHttpRequest();
xi.open("GET","imgdata.php?url="+yourImageURL,true);
xi.send();
xi.onreadystatechange=function() {
if(xi.readyState==4 && xi.status==200) {
img=new Image;
img.onload=function(){
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
}
img.src=xi.responseText;
}
}
Jika Anda menggunakan getImageData
kanvas setelah itu, itu akan berfungsi dengan baik.
Atau, jika Anda tidak ingin menyimpan seluruh gambar, Anda bisa meneruskan koordinat x & y ke skrip PHP Anda dan menghitung nilai rgba piksel di sisi itu. Saya pikir ada perpustakaan yang bagus untuk melakukan pemrosesan gambar semacam itu di PHP.
Jika Anda ingin menggunakan pendekatan ini, beri tahu saya jika Anda membutuhkan bantuan untuk mengimplementasikannya.
sunting-1: peeps menunjukkan bahwa skrip php terbuka dan memungkinkan internet untuk menggunakannya dengan jahat. ada sejuta cara untuk menangani ini, salah satu yang paling sederhana adalah semacam kebingungan URL ... saya rasa praktik-praktik php aman layak mendapatkan google yang terpisah; P
sunting-2: berdasarkan permintaan populer, saya telah menambahkan tanda centang untuk memastikan itu adalah gambar dan bukan skrip php (dari: PHP periksa apakah file adalah gambar ).