Ich möchte ein Array von Floats in RBG -Werte konvertieren. Die Schwimmer reichen von 0,0-1,0. Diese Schwimmer repräsentieren Pixel. Einige Pseudocode veranschaulichen: < /p>
image_data = Pillow_package('image') = [12, 235, 63, r2, g2, b2, r3, ...]
for dta in image_data:
decimal_data = (r*256*256 + g*256 + b) / (256**3 + 256**2 + 256) = [0.XX, 0.YY, ...]
< /code>
Ich verwende den folgenden Code (JS), um die RGB -Werte wiederherzustellen: < /p>
val = val * (256*256*256 + 256*256 + 256)
r = Math.floor(val / (256 * 256))
g = Math.floor((val / 256)) % 256
b = val % 256
< /code>
Und das ergibt Folgendes:
Initiale Pixeldaten < /p>
Das Problem ist, wenn ich mit der Simulation beginne. Siehe hier:
Simulation initiiert < /p>
Ich habe die 10 -minütige Physik -Github von Matthias Müller von GetCicolor () verwendet und das beabsichtigte Ergebnis erhalten, aber seine Funktion 'Bins' verwendete FEA -Färbung. Siehe vor und bei Initiierung. < /P>
const min = 0.0
const max = 1.0
val = Math.min(Math.max(val, min), max - .0001)
let d = max - min
val = d == 0.0 ? 0.5 : (val - min) / d
let m = .25
let num = Math.floor(val / m)
let s = (val - num * m) / m
switch (num) {
case 0 : r = 0.0; g = s; b = 1.0; break;
case 1 : r = 0.0; g = 1.0; b = 1.0-s; break;
case 2 : r = s; g = 1.0; b = 0.0; break;
case 3 : r = 1.0; g = 1.0 - s; b = 0.0; break;
}
< /code>
Ich glaube, ich muss seine 'Bins' aus der Switch -Funktion auf meine beabsichtigte Farbskala in Verbindung bringen, aber ich 1) verstehe nicht, was sie tun und 2) nicht, ob das möglich ist. Ich denke, das würde-was scheint-ein Mischproblem zu lösen, auf das ich stieß. Könnte jemand erklären 1) und mich vielleicht runter starten 2) unter der Annahme, dass es möglich ist? Danke.
Umwandeln ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post