Also bin ich kein Experte in Codierung: Ich habe nur ein vages Verständnis von ein paar Bits und Bobs.Opazität von RGB-Array
Ich verstehe, dass Bilder von Pixeldimensionen X * Y in einem Array der Größe 3 * X * Y gespeichert werden, wobei jeder von einem gegebenen (x, y) -Wert gezogene Vektor 3 Elemente für die 3 RGB-Werte aufweist.
Ich verstehe auch, dass man auch ein Bild in einem 4 * X * Y-Array speichern kann, wo jeder gezogene Vektor nun 4 Werte hat, RGBA mit A ist Alpha, um die Deckkraft eines bestimmten Pixels darzustellen.
Jetzt bin ich in Animation und habe Bleistiftzeichnungen von weißen Wolken auf einem schwarzen Hintergrund, die ich in Flash importieren möchte. Ich möchte, dass die schwärzeren Teile der Zeichnung transparenter und die helleren Teile undurchsichtiger sind. Ich habe die Scans der Zeichnungen im .png-Format gespeichert.
Wenn ich eine Idee hätte, wie man ein Bild auf der "Array-Ebene" manipulieren könnte, könnte ich selbst einen Stich bekommen, aber ich bin ratlos.
ich ein Programm benötigen, das eine .png Bild und ein Referenz-RGB-Wert {ABC} gegeben, erhält die RGB-Array des Bildes und wandelt es in ein Array RBGA so dass:
einem pixel des RGB-Wert {} pqr
...... Wird ......
ein pixel von RGBA-Wert {pqr 1-M [(| PA |^2 + | qb |^2 + | rc |^2)^1/2}}.
wobei M ein Normierungsfaktor ist, der den größten Wert macht alpha = 1.
dh M = 1/[(255 + 255^2^2 + 255^2)^1/2]) = 0,0026411 ...
dh der Alpha-Wert des Ersatzpixels ist der 'Abstand' zwischen der Farbe des Pixels und einer Referenzfarbe, die eingegeben werden kann.
Dies muss dann das neue RGBA-Array als PNG-Bild exportieren.
Irgendwelche Ideen oder irgendwelche anderen Animatoren wissen, ob dies direkt mit Actionscript getan werden kann?
Beispiel: Referenz = {250 251 245}
RGB array =
| {250 251 245} {250 250 250} |
| {30 255 22} {234 250 0} |
...... Wird ......
RGBA array =
| {250 251 245} 1 {250 251 245} 0,987 |
| {30 255 22 0,173} {234 250 0 0.352} |
Sie scheinen die Mathematik beteiligt zu haben, was ist der Hangup? Dies ist kein Code-Schreibdienst. –
Nein, ich weiß, ich habe nur keine Ahnung, wie ich es umsetzen soll. Ich habe nur die Grundlagen des Codierens in Matlab gemacht, also bin ich völlig am Ende. –
Klingt interessant ... wie wäre es mit einigen Beispielbildern zum Spielen? –