Poniższy kod powinien odczytać plik obrazu, a następnie dodać dane pliku do płótna za pomocą modułu Canvas.nodejs - Jak dodać dane obrazu z pliku na płótno
Po uruchomieniu tego kodu otrzymuję komunikat o błędzie Obraz nie jest zdefiniowany. Czy obiekt obrazu, który próbuję zainicjować z modułu, który po prostu zaimportuję?
var http = require('http'), fs = require('fs'),
Canvas = require('canvas');
http.createServer(function (req, res) {
fs.readFile(__dirname + '/image.jpg', function(err, data) {
if (err) throw err;
img = new Image();
img.src = data;
ctx.drawImage(img, 0, 0, img.width/4, img.height/4);
res.write('<html><body>');
res.write('<img src="' + canvas.toDataURL() + '" />');
res.write('</body></html>');
res.end();
});
}).listen(8124, "127.0.0.1");
console.log('Server running at http://127.0.0.1:8124/');
Dzięki Rohan.Zapomniałem o definiowaniu zmiennych ctx i canvas, ale nigdy nie zauważyłem, ponieważ nie udało mi się jeszcze dostać tych błędów. Ten link podałeś tam, skąd wziąłem przykład, ponieważ pokazany na tej stronie autor użył ** nowego obrazu ** zamiast ** Canvas.Image **. – mesh
Tak, leniwa dokumentacja tam. Samo użycie 'Image' w kontekście kodu samego modułu węzła-płótna działałoby, ponieważ definiuje' Image = canvas.Image' w swoim źródle (lib/canvas.js). Jednak nie będzie działać we własnym kodzie, chyba że zdefiniujesz tę samą definicję. –
Szkoda, ale ta biedna dokumentacja wciąż istnieje. Jak możemy walnąć w tyłek, żeby to naprawić? – Dan