2016-12-20 4 views
0

Ich errate das Zahlenspiel über socket.io in node.js Sagen wir, dass ich die Person errate die a 124, die offensichtlich dem Benutzer angezeigt wird als 12_, möchte ich der Person 12_ sagen, wenn sie 4 als letzte Ziffer erraten haben, das wäre die richtige Antwort, wie sende ich ein Bild mit dem Text 12_ für jede Person über socket.io. Ich brauche eine Möglichkeit, Bilder zu erzeugen. Ich glaube, dass das Speichern von Bildern für eine große Anzahl von Menschen eine schlechte Idee wäre. oder könnte ich einfach 7 oder 8 einfache Hintergründe haben und dynamisch Text überschneiden, den ich auf diesen Hintergründen möchte und es dem Benutzer schicken.wie ein Bild für jeden Benutzer in node.js

Was habe ich versucht Ich kann nicht Knoten-Leinwand verwenden, da es eine native Abhängigkeit von Heroku benötigt, kann ich nicht frei Plan doesnt Unterstützung es Irgendwelche Vorschläge

Antwort

1

Sie die Verwendung GraphicsMagick als Heroku s lesen müssen Bild und wandeln in base64 auf der Serverseite

socket.emit('image', { image: true, buffer: buf.toString('base64') }); 

wo, wie auf der Client-Seite Sie websocket Bild empfangen können

var ctx = document.getElementById('canvas').getContext('2d'); 

socket.on("image", function(info) { 
    if (info.image) { 
    var img = new Image(); 
    img.src = 'data:image/jpeg;base64,' + info.buffer; 
    ctx.drawImage(img, 0, 0); 
    } 
}); 
+0

danke für die antwort, aber wie erzeuge ich ein anderes bild für jede person, ich möchte bilder im laufe der zeit erzeugen, ich kann buchstäblich eine person erraten jede zahl von 12_ bis _3_456 und ich möchte nicht speichern bilder für alle möglichen Kombinationen von Ziffern und Unterstrichen – PirateApp

+0

Entschuldigung falscher Kommentar, wie erzeuge ich Bild für einen Nicht-Browser-Client, so etwas wie eine URL an sie senden und sie sehen ein Bild, ist das überhaupt möglich – PirateApp

+2

Studie ** Leinwand **, Sie können ein Canvas-Image zur Laufzeit auf dem Nodejs-Server-Ende erstellen und das Emit-Image übergeben oder Sie können Text von der Serverseite senden und das Image zur Laufzeit auf dem Client-Ende erstellen. –

0

Ich weiß, es ist eine wirklich alte Frage, aber vielleicht hilft es jemandem (da gibt es sehr wenig Informationen darüber).

Ich wollte nur sagen, dass Sie GraphicsMagick und ImageMagick in Heroku verwenden können. You just need to add a buildpack, damit es funktioniert (es funktioniert sogar auf freien Instanzen).

Hier ist ein Blogpost Ich habe gesagt, wie ich GraphicsMagick in Node.js verwendet. Sie können überprüfen, the code on Github (faire Warnung, der Code saugt, aber hey, es funktioniert).

Verwandte Themen