Bereiche eines Bildes mit einer transparenten Farbe versehen, wie geht man da vor?



  • Also wenn ich es auf 3d Basis machen würde, dann nur mit OpenGL da die Anwendung Crossplattform fähig sein muß.

    Nur, welches GUI Toolkit könnt ihr mir für OpenGL empfehlen?

    Zum Einfärben:
    Ich habe jetzt mal etwas mit den RGB Farben für das Bild mit einem Bildbearbeitungprogramm herumgepielt.
    Kann es sein, das man zum Einfärben eines Bildes, das z.B. rot gefärbt werden soll
    lediglich die RGB Werte von Grün und Blau auf 0 setzen muß?
    So hat das nämlich der "einfärben"-Filter dieses Programms (Gimp) gemacht.

    Die Vorgehensweise wäre also folgendermaßen:
    1. Erstellen eins Structs mit 3 Variablen für die Farben rot grün und blau
    vom Typ unsigned char.
    2. Anlegen eines Arrays vom Typ dieses Structs, das groß genug ist, damit das zu ladene Bild reinpaßt.
    Bei einem Bild mit einer Auflösung von 256*256 Pixel wäre das also
    ein Array mit einer Indexgröße von 65536.
    3. Darin wird dann das zu ladende Bild abgelegt.

    So, nun haben wir das Bild.
    Zum Einfärben müßte ich jetzt das Bild in ein weiteres Array der gleichen Größe und gleichen Typs speichern und dabei, bei den Bereichen welche eingefärbt werden sollen einfach die Rot und Grün Werte auf 0 setzen.

    Habe ich da richtig gedacht?
    Wenn ihr eine bessere Vorgehensweise wißt, dann nur her damit.



  • Kann es echt so schwer sein? Einfach ein neues Bild erstellen, in dem diese bestimmten Pixel aus Ursprungsfarbe und "Rosarot" linear interpoliert sind.

    Bitte lesen. Danke.

    Bye, TGGC (Reden wie die Großen)



  • TGGC schrieb:

    Kann es echt so schwer sein? Einfach ein neues Bild erstellen, in dem diese bestimmten Pixel aus Ursprungsfarbe und "Rosarot" linear interpoliert sind.

    Bitte lesen. Danke.

    Ich zitiere Data:

    Interpolieren, Werte zwischen zwei Werten, Durchschnitt, Zwischenwert ermitteln, mathematisch formuliert in Form von (X1 + X2) / 2....

    Fazit:

    Dein Link ist unangebracht da du selber zu einer falschen Schlußfolgerung kommst
    und das Problem nicht lösen kannst.

    Und ja, das Problem ist, wenn man es noch nie gemacht hat und einen möglichst optimalen Lösungsweg haben möchte, auf den ersten Blick nicht so einfach, denn auch deine von dir vorgeschlagene Idee, den 1. Pixel mit dem 2. Pixel zu addieren und daraus dann den Mittelwert zu bilden, siehe Interpolation ist vollkommen falsch.

    Denn wenn du z.B. einen grünen Hintergrund hast
    und dazu einen roten Farbton dazuaddierst und danach den Durschnitt bildest,
    dann entsteht dadurch beileibe kein rot gefärbtes Bild sondern
    im ersten Schritt erstmal ein kräftiges Gelb und nach der Bildung des Mittelwerts ein häßliches Dunkelgrün.

    Das kannst du ganz leicht mit jedem beliebigen Bildbearbeitungsprogramm nachprüfen.
    Mit deiner Methode erzielt man also definitiv keinen rot eingefärbten Bereich.

    Nun kommen wir zu meiner weiter oben beschriebenen Methode, in einem Bildbearbeitungsprogamm funktioniert diese Methode nachweislich, nur könnte es sein, das die Art und Weise wie ich das implementieren wollte nicht die schnellste Methode war.
    Was ich auch gestern nach meinem letzten Beitrag herausgefunden habe.

    Die eleganteste Lösung ist nämlich, die Pixel eines Bereich den man einfärben will mit einer Maske bestehend aus roten Pixeln zu mulitplizieren,
    denn dadurch fliegen die Grün und Blau Werte weg bzw. werden auf null gesetzt, da 0 mal irgendetwas schließlich wieder null ergibt. Und das
    war auch vergleichbar mit meiner vorherigen Idee, die Grün und Blau Werte einzeln auf 0 zu setzen, nur ist meine jetzige letzten endes gewählte Methode
    mit der einfachen Multiplikation besser.

    Aber eine Multiplikation ist keine Interpolation, du hast es also selber nicht gewußt wie es geht.
    Bevor du also irgendwelche Kommentare die auf dämliche Links verweisen
    postest, solltest du dich erstmal selber mit der Materie auskennen
    ansonsten kannst du dir die Verlinkung zu so nem Müll nämlich sparen.

    Ich habe nichts dagegen wenn man konstruktive Antworten liefert oder
    welche, die auch mal falsch sein können, aber falsche Antworten zu liefern und
    dann noch mit einem Arroganten Link zu behaupten die Weisheit mit Löffeln gefressen zu haben ist dann definitiv nicht mehr aktzeptabel.



  • Bei deiner Methode wird aus grün nur schwarz aber dafür wird aus blau schwarz. Das ist ein Filter und keine Transparenz.

    Bitte lesen. Danke.

    P.S.: Ich kann die Enter Taste bedienen. Ich habe die Weisheit mit Löffeln gefressen.

    Bye, TGGC (Reden wie die Großen)



  • TGGC schrieb:

    Bei deiner Methode wird aus grün nur schwarz aber dafür wird aus blau schwarz. Das ist ein Filter und keine Transparenz.

    Die grün und blau Anteile sollen bei einem Bild ja auch weitgehend entfernt werden wenn man einen vernünftigen Rot Ton hinbekommen möchte.

    Und irgendwelche Wortbrocken wie "Transparenz" in die Runde zu schmeißen
    bringt auch nichts, das kann jeder, so schlau reden könnte ich auch
    wenn ich aber dich frage wie das intern wirklich abläuft dann kommt nix von dir
    rüber, echt arm.
    Erkläre doch mal einen Algorithmus Schritt für Schritt mit dem man rot gefärbte Transparenz hinbekommt, ich bin mal gespannt was jetzt als Antwort von dir kommt.

    Und bitte keine Wortbrocken wie, in DirectX geht das mit dem und dem Befehl.
    Ich will das möglichst auf einer generellen Grundlagenebene erklärt bekommen.



  • Ich spreche über Transparenz, weil du danach gefragt hast. Wie (Alpha-)Transparenz "intern wirklich abläuft", habe ich ja erklärt. Vielleicht solltest du mal lesen, was hier so geschrieben ist.

    P.S.: Ich kann die Enter Taste bedienen. Ich habe die Weisheit mit Löffeln gefressen.

    Bye, TGGC (Zu viele Primitive hier.)



  • TGGC schrieb:

    Ich spreche über Transparenz, weil du danach gefragt hast. Wie (Alpha-)Transparenz "intern wirklich abläuft", habe ich ja erklärt.

    Wo hast du das erklärt?

    Ich habe die Suchfunkion schon benutzt und nichts gefunden
    das den Transparenz Effekt auf der untersten Grundlagen Ebene erklärt.

    Überall heißt es nimm Fuktion aus API XY die macht das für dich wenn du diese Funktion so oder so anwendest.
    Toll, auf solche Erklärungen kann ich bei meiner Problemstellung verzichten.

    Vielleicht will ich so einen Algorithmus, der das kann auch selber in meine eigene 2d Anwendung integrieren ohne auf externes Zeugs zurückgreifen zu müssen.

    Und deine antwort auf Transparenz:

    Also ich würde erstmal die entsprechenden Abschnitte der DXSDK Doku lesen (und verstehen!). Danach kann man alles schön mit dem MFCtex-Tool ausprobieren.

    http://www.c-plusplus.net/forum/viewtopic.php?t=90022&postdays=0&postorder=asc&highlight=transparenz&start=10

    Ist ebenfalls unbrauchbar, da ich kein Windows habe und besagtest Tool nicht nutzen kann.



  • Für dich nochmal zum Mitmeißeln: Lineare Interpolation.

    P.S.: Ich kann die Enter Taste bedienen. Ich habe die Weisheit mit Löffeln gefressen.

    Bye, TGGC (NP Intelligenz)



  • sry sdj, aber TGGC hat recht >_<



  • Das ist so per Definition. 😎

    Bye, TGGC (NP Intelligenz)



  • life schrieb:

    sry sdj, aber TGGC hat recht >_<

    Falls er wirklich recht haben sollte, dann wäre die Schlußfolgerung,
    daß er unfähig ist anderen Menschen bei ihren Computerfragen zu helfen
    was auch zur Folge hat, daß er unfähig ist in einem Team zu arbeiten.
    Womit wir aber gleich zur nächsten Frage kommen die lautet:
    Warum postet er hier überhaupt? Er kann es sich im Prinzip ja sparen, ihn versteht sowieso keiner.

    So etwas ist noch schlimmer als jemand der nur mittelmäßig gut ist,
    denn während der Mittelmäßige bei einer Firma noch genommen wird,
    ist der andere oben beschriebene in sich gekehrte Stubenhocker
    der sein ganzes Wissen für sich alleine behält, als es seinem Team
    mitzuteilen für die Teamarbeit unbrauchbar.
    So etwas braucht keine Firma.

    Außerdem, Wissen das mit ins Grab genommen wird ist wertlos.



  • TGGC schrieb:

    Für dich nochmal zum Mitmeißeln: Lineare Interpolation.

    Schön, du kannst sogar Wörter wiederholen.



  • Viele Menschen leben im Internet die Seiten ihres Charakters aus, die im "normalen" Leben zu kurz kommen. So könnte TGGC z.b. im normalen Leben eher schüchtern sein, während er hier einen auf arrogant macht. Aber wirklich Rückschlüsse auf den Charakter einer Person, die du nur vom Internet her kennst, kannst du nicht machen.



  • Ach Mann, dann heul doch. Du vergisst wohl, das du hier was von uns willst und nicht umgekehrt. Ausserdem bist du nicht mein Arbeitsteam oder sowas, sondern ich beschäftige mich in meiner Freizeit und gratis mit dir und deinem "Problem". Ich poste hier weil es nicht nur undankbare, faule Idioten gibt, die Unbekannte beleidigen, weil sie nicht den Arsch geküsst bekommen.

    P.S.: Ich kann die Enter Taste bedienen. Ich habe die Weisheit mit Löffeln gefressen.

    Bye, TGGC (NP Intelligenz)



  • TGGC schrieb:

    Du vergisst wohl, das du hier was von uns willst und nicht umgekehrt.

    Und trotzdem kann man als Fragesteller eine vernünftige hilfreiche Antwort verlangen.

    Ausserdem bist du nicht mein Arbeitsteam oder sowas, sondern ich beschäftige mich in meiner Freizeit und gratis mit dir und deinem "Problem".

    Welche Hilfe? Ich sehe keine.
    Das was du Hilfe nennst ist ein Verweis auf einen Text, der mit dem Thema nichts zu tun hat, sowie das einwerfen zweier Wortbrocken in diesen Thread.
    Unter Hilfe verstehe ich etwas anderes, und nein damit meine ich
    kein komplettes Handbuch sondern ich gebe mich auch schon mit einem Link zu einem Artikel der dieses Thema behandelt zufrieden, aber selbst so etwas einfaches hast du nie geliefert.

    Ich poste hier weil es nicht nur undankbare, faule Idioten gibt, die Unbekannte beleidigen, weil sie nicht den ***** geküsst bekommen.

    Schöne Ausrede, nur trifft die auf mich nicht zu. :p
    Denn ich habe bereits eine Lösung für mein Problem selbst erarbeitet, siehe weiter oben.
    Und da du noch keine einzige Hilfe warst ist auch Dankbarkeit völlig überflüssig, für was denn?
    Und wenn du meine Postings als Beleidigung ansiehst, dann fehlt dir offentsichtlich wirklich eine soziale Komponente in deinem Leben.
    Desweiteren bist du selber schuld wenn du auf genauer eingehende Fragen (die sogar noch ne Lösung enthalten 😮 ) dann immer noch keine detailliertere Antwort liefern kannst, sondern dann auf deinen kurzen Wortfragmenten
    die schon im ersten Posting unzureichend waren, beharrst, also
    beklag dich nicht wenn ich dir sage was Sache ist.
    Den weiteren Rest deines Ergusses den ich oben zitiert habe muß ich
    nicht noch weiter kommentieren, daher spare ich mir die Arbeit.

    Übrigens, die Suche mit Google nach dem Begriff "lineare Interpolation" führt
    entweder zu einer Beschreibung des Anit-Aliasing Verfahren oder zu Mathe Artikeln die beschreiben wie man bei einem Graphen bestehend aus Punktwerten eine durchgehende Linie ermittelt.
    Beide Dinge haben mit meinem obigem Problem aber nicht das geringste zu tun,
    denn wenn es so wäre, dann wäre die Wahrscheinlichkeit groß,
    daß man mindestens einen einzigen Artikel findet, der obige Problemstellung im Zusammenhang mit dem Begriff "lineare interpolation" behandelt.

    Und ja, es bleibt dabei, die Grundaussage der "linearen Interpolation"
    ist das bilden eines Mittelwerts, für mein obiges Problem
    brauch ich aber gar keinen Mittelwert und eine Antwort warum
    der gut sein sollte hast du bis jetzt noch nicht geliefert.



  • sdf schrieb:

    Warum postet er hier überhaupt? Er kann es sich im Prinzip ja sparen, ihn versteht sowieso keiner.

    Deine Verallgemeinerungen bringen hier nichts.

    DU != ALLE

    sdf schrieb:

    Und trotzdem kann man als Fragesteller eine vernünftige hilfreiche Antwort verlangen.

    Nicht wenn man Helfende konsequent beleidigt.

    sdf schrieb:

    Übrigens, die Suche mit Google nach dem Begriff "lineare Interpolation" führt
    entweder zu einer Beschreibung des Anit-Aliasing Verfahren oder zu Mathe Artikeln die beschreiben wie man bei einem Graphen bestehend aus Punktwerten eine durchgehende Linie ermittelt.
    Beide Dinge haben mit meinem obigem Problem aber nicht das geringste zu tun,
    denn wenn es so wäre, dann wäre die Wahrscheinlichkeit groß,
    daß man mindestens einen einzigen Artikel findet, der obige Problemstellung im Zusammenhang mit dem Begriff "lineare interpolation" behandelt.

    Wie wär's wenn Du dann die Suche mal sukkzessiv einschränkst, z.B. indem Du "Farben" "Farbwerte" oder "RGB" hinzufügst oder mal auf englisch fahndest?!?



  • Sgt. Nukem schrieb:

    sdf schrieb:

    Warum postet er hier überhaupt? Er kann es sich im Prinzip ja sparen, ihn versteht sowieso keiner.

    Deine Verallgemeinerungen bringen hier nichts.

    DU != ALLE

    Ich denke das ich mir bei seiner Art der Antwort das Recht herausnehmen kann
    auf alle zu schließen.
    Ausgenommen sind allerhöchstens nur die Leute, die so etwas dieser Art schonmal
    gemacht oder durchgelesen haben, die dürften mit seinen Wortbroken dann doch noch etwas anfangen können, aber den meisten, insbesondere den Einsteigern in der Grafikprogrammierung, ist mit seinen kurzbündigen Worten sicherlich nicht geholfen.

    sdf schrieb:

    Und trotzdem kann man als Fragesteller eine vernünftige hilfreiche Antwort verlangen.

    Nicht wenn man Helfende konsequent beleidigt.

    So wie man in den Wald hineinruft so hallt es auch zurück.
    Oder anders gesagt, wer austeilt, der darf auch einstecken.
    Er hat schießlich angefangen, siehe sein Link in seinem ersten Posting:
    http://www.fh-merseburg.de/~roesch/tggcg/achsindwirnett.php?page=1&nick=TGGC

    Hätte er gleich von Anfang an vernünftig geantwortet oder es gleich bleiben lassen, dann hätte man sich das ganze Zeugs sparen können.

    Z.B. hätte er auch genauso gut nur das da schreiben können:
    "Einfach ein neues Bild erstellen, in dem diese bestimmten Pixel aus Ursprungsfarbe und "Rosarot" linear interpoliert sind. "

    Aber nein, er konnte es natürlich nicht lassen und
    mußte gleich noch zusätzlich seine Arroganz Kanone rausholen.
    Also sein Link und die Frage "Kann es echt so schwer sein?"
    die man durchaus als bösartig werten kann, da man
    so etwas eigentlich erst dann schreibt, wenn wirklich schon viel vorher ausprobiert wurde.
    Wozu sollte das gut sein? Das war total unnötig. Er wollte also schlechte Stimmung aufbauen und dafür gibt es dann halt auch die entsprechende Antwort.

    Wie wär's wenn Du dann die Suche mal sukkzessiv einschränkst, z.B. indem Du "Farben" "Farbwerte" oder "RGB" hinzufügst oder mal auf englisch fahndest?!?

    Das habe ich alles schon gemacht, ok "RGB" als Suchwort wäre noch
    einen Versuch wert. Werde da mal nachschauen.



  • Wird das jetzt wieder so ein dummer flamewar?
    Höre zu, wenn einer DEIN Problem lösen helfen will. 2. Schritt: verstehe, wenn es dir hilft, oder auch nicht. 3 Schritt: halte die klappe oder bedanke dich.

    Sinnlos.



  • randa schrieb:

    Wird das jetzt wieder so ein dummer flamewar?
    Höre zu, wenn einer DEIN Problem lösen helfen will. 2. Schritt: verstehe, wenn es dir hilft, oder auch nicht. 3 Schritt: halte die klappe oder bedanke dich.

    Sinnlos.

    Ich muß mich von TGGC nicht dumm anmachen lassen, wenn er mir helfen will,
    dann kann er das tun, aber das dumm anmachen muß ich mir nicht gefallen lassen.
    Auch dann nicht, wenn ICH derjenige bin, der ein Problem zu lösen hat und von euch etwas will.

    Kann das so schwer sein, das zu verstehen?

    Wäre ja noch schöner wenn die Forum Regel ab heute so lauten würde:

    Wenn du etwas von uns willst, dann kannst du uns gerne fragen, wir helfen
    dir aber nur, wenn du dich von uns dumm anmachen läßt, denn das ist ein Recht das wir als Beantworter deiner Frage gegenüber dir, als Fragenstellender hier haben.



  • Junge, geh sterben 😉

    Wenn man zivilisiert mit TGGC umgeht (und ein wenig nachfragt, aber das sollte klar sein) dann bekommt man doch ganz gute Infos von ihm (siehe meinen Sphere-AABB Intersection Thread, an dieser Stelle nochmal Thx@TGCC 😉 )

    cya
    liquid


Anmelden zum Antworten