JavaScript — как отобразить изображение в processing.js из PHP с помощью Jquery

Привет, я пытаюсь отобразить изображение в наборе processing.js, используя jquery ajax-запрос и код php, но он не показывает изображение, которое я посылаю на скетч, вот мой код JS:

<script type="text/javascript">
function send() {
//var s;
function setPath(imgPath) {
var s = imgPath;
var processingInstance;
processingInstance = Processing.getInstanceById('canvas');
processingInstance.change(s);
}
var variable = 5;
$.ajax({
method: "POST",
tupe: "POST",
url: "take.php",
data: ({val: variable}),
success: function (data) {
setPath(data);
},

});}
</script>

Это мой код обработки:

String pic;
PImage img;

void setup(){
size(200,200);
background(150);
img = loadImage(pic);
}

void draw(){

image(img,50,50,width/2,height/2);
}
void change(String val){
pic = val;
println(pic);

}

И мой код PHP:

<?php

if ($_POST) {
$temp = $_POST['val'];
if ($temp == 5) {
$img = "images.jpg";
echo $img;
}
}
?>

когда я запускаю код и печатаю результат в эскизе, я получаю результат «images.jpg», но на холсте ничего не отображается, кто-то знает, что делать ??

1

Решение

Имейте в виду, что setup() Функция вызывается только один раз, в начале эскиза.

Ваш pic переменная начинается без значения, и это то, что вы передаете в loadImage() функция. Вы сохраняете возвращенное значение (которое, вероятно, будет разбитым изображением) в ваш img переменная.

Тогда в change() функция, вы обновляете pic переменная, но вы не обновляете img переменная. Просто потому, что вы меняете pic переменная не означает, что изображение магически перезагружается для вас. Вы должны специально сделать это самостоятельно.

Это может выглядеть примерно так:

void change(String val){
pic = val;
img = loadImage(pic);
}

На самом деле вы могли бы избавиться от pic переменная полностью.

Обратите внимание, что для этого также требуется файл изображения, расположенный по указанному пути.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]