Ich habe eine Base64-codierte PNG. Ich brauche die Farbe eines Pixels mit Javascript. Ich gehe davon aus, dass ich es wieder in ein normales PNG konvertieren muss. Kann mir jemand in die richtige Richtung zeigen?Get Pixelfarbe von Base64 PNG mit Javascript?
Antwort
Ein Image
Objekt mit dem base64 Bild als Quelle. Dann können Sie das Bild auf eine Arbeitsfläche zeichnen und die getImageData
-Funktion verwenden, um die Pixeldaten abzurufen.
Hier ist die Grundidee (ich dies nicht getestet):
var image = new Image();
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
// Now you can access pixel data from imageData.data.
// It's a one-dimensional array of RGBA values.
// Here's an example of how to get a pixel's color at (x,y)
var index = (y*imageData.width + x) * 4;
var red = imageData.data[index];
var green = imageData.data[index + 1];
var blue = imageData.data[index + 2];
var alpha = imageData.data[index + 3];
};
image.src = base64EncodedImage;
Vielen Dank! Ich nahm das dann und konvertierte zu Hex-Codes. Gibt es eine Möglichkeit, Hex-Daten von getImageData zu holen, oder muss ich es konvertieren? Wie auch immer, danke! – switz
@Switz: Nicht direkt. Sie müssen jeden Kanal einzeln mit 'toString (16)' oder etwas ähnlichem konvertieren. –
Das habe ich gemacht. Vielen Dank! – switz
- 1. Get Höhe und Breite von base64 PNG
- 2. Extrahieren von Pixelfarbe aus PNG-Bild
- 3. eine Base64 PNG mit Express
- 4. GET Daten: image/png; base64, {{image}} net :: ERR_INVALID_URL
- 5. Thresholding base64 String mit JavaScript
- 6. LibGDX Textur von Base64 PNG erstellen ByteArrayInputStream
- 7. Online-Tool base64 String png
- 8. Wie ein png von JavaScript-Variable
- 9. Konvertieren von Binärdaten in Base64 mit JavaScript
- 10. Canvas - Get Pixelfarbe in mehreren Leinwand überlagern
- 11. Base64 PNG-Daten zu HTML5 Canvas
- 12. Javascript Saves Canvas (PNG) von IE
- 13. base64 png in Python unter Windows
- 14. Get base64 von Dateiname zu sehen
- 15. "Bild/Png; Base64?" was tut es?
- 16. Wie base64 ein Bild in Javascript codieren
- 17. Wie man Daten decodiert: image/png: base64 ... zu einem realen Bild mit Javascript
- 18. 100x100 Bild mit zufälliger Pixelfarbe
- 19. erhält Pixelfarbe in Beispiel
- 20. Javascript base64 Konvertierung
- 21. jpg zu base64 Javascript
- 22. Get :: Platzhalterfarbe mit Javascript
- 23. convert base64 zu Bild in Javascript/jquery
- 24. Classic ASP Base64, image/png -> als Bild speichern
- 25. Wie jpg Bild png mit Javascript
- 26. Rendern von SVG mit eingebetteten Base64-codierten PNG-Bildern mit SVGKit benötigt viel Speicher
- 27. Spiel .wav-Datei in Base64 mit Javascript
- 28. Base64-Codierung in Javascript mit Bitverschiebung
- 29. Javascript "Puzzle" mit unregelmäßigen .png Formen
- 30. Get Breite mit Javascript
Ja, Sie werden sowohl base64-decode haben, und dann die PNG-Stream in Javascript dekodieren. Dies ist ein hartes (wenn auch nicht unmöglich) Problem. Sie könnte in der Tat auf diese Anforderung eingeschränkt werden, aber wenn Sie ein wenig mehr Kontext geben, könnten Sie einige breitere-scoped Antworten geben andere Abhilfen in der Lage zu bekommen. Z.B. Woher kommen die PNG-Daten? Wohin geht es? Benötigen Sie für jedes Bild einen einzelnen festen Pixel? Haben Sie Server-Unterstützung? –
usw. Um es etwas ausführlicher: Ich bin versucht, eine Safari-Erweiterung zu schreiben. Es wird die Fähigkeiten von Colorzilla für Firefox nachahmen. Der einzige Weg, wie ich das gesehen habe, ist, wenn du einen "Screenshot" machst. Die Ausgabe erfolgt in Base64 PNG. Ich müsste schließlich die Maus verfolgen und dann mit dem Bild synchronisieren, um die Daten des angeklickten Pixels aus dem Bild zu ziehen. – switz
@Benzotto Warum wäre es schwer? – Melab