Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Transparenzfilter
Ich habe diverse Bilder, die sich aufgrund ihres speziellen Dateityps nur in einem speziellen Programm öffnen lassen. Dort kann ich sie nur auf einem Hintergrund meiner Wahl wieder als PNG/JPEG/GIF wasauchimmer abspeichern.
Die Bilder brauch ich eigentlich so^^
Einfach die Hintergrundfarbe erntfernen geht nicht, da die Bilder auch diverse halbtransparente Stellen haben.
Ich suche jetzt nach einer Möglichkeit diese Bilder "rauszufiltern". Da ich die Hintergrundfarbe ja frei wählen kann, müsste das doch möglich sein, oder?
Ich exportiere also die Bilder mit verschiedenen Hintergrundfarben, übergebe diese Bitmaps mitsamt der Hintergrundfarbe (als Color) als Parameter und bekomme die ursprüngliche Farbe zurückgegeben.
Ich hoffe Hilfe kommt x3
/edit: Mein unfertiger, nicht funktionierender Versuch:
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo-Bahamut« (25. Juli 2009, 11:04)
Es gibt dafür einen Logischen grund:
nehmen wir einmal an mein aktueller avatar hätte einen roten hintergrund 255,0,0
ich habe an den kanten Anti-aliasing (und somit Halbtransparente stellen) die aber eben einen übergang zu rot darstellen.
Jetzt ist deine idee dass der übergang zu Rot als übergang zur definierten Transparenz gedeutet wird.
wenn man einen pixel vom schwarzen Rand nimmt (beim anti aliasing) hat man zb. einen pixel mit
110,0,0
dieser erhält dann eine opacity von 255-110 = 145 (max 255)
(selbst wenn deine formel anders wäre würde das am problem nichts ändern)
damit dieser pixel dann aber noch Schwarz wird, und nicht mehr einen Rot-touch hat, musst du vom Rot wert 110 abziehen. ==> unser anti aliasing übergang ist perfekt geglückt und sieht gut aus.
ABER
wenn wir das jetz auf einen fall beziehen wo wir keine schöne rot-only farbe haben
nehmen wir mal einen Bildausschnitt der voll-sichtbar wäre
das Auge (Weiß 255,255,255)
woher willst du wissen ob das Auge (grob ausgedrückt) nicht cyan ist?
es ist dem Rechner jetzt nicht mehr möglich aus dem zusammengefügten bild zu erkennen ob er nicht in wirklichkeit ein 0,255,255 cyanfarbenes auge vorliegen hatte.
denn wenn der rote hintergrund den du als indiz für den Alpha Kanal verwendest überall dahinterliegt, dann wird er auch an stellen vermutet, wo er garnicht ist.
(wenn man jetz mal so denken würde dass 0,255,255 über 255,0,0 = 255,255,255 wäre. Andere rechnung ändert am problem nichts.)
Wenn man obiges verfahren anwenden würde, würdest du nie auf das weiße auge kommen.
das ist ein rein logisches problem:
nehmen wir mal an du hättest ein bild, bei dem ein lilaner hintergrund genommen wird (um von diesem simplen 255,0,0 mal wegzukommen)
Jetzt ist auf diesem Bild mit lila hintergrund ein männchen mit einer schwarzen jacke. die knöpfe dieser jacke sind dunkel-lila. Jetzt wäre das einzige was ein logischer ablauf tun kann folgendes:
Knöpfe sind halbtransparent.
Er kann ja nicht wissen (und der menschliche betrachter auch nicht) ob das nicht vom künstler so gemeint ist dass die knöpfe transparent sind. Folglich kann es garkeine lösung geben.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »fette Neunzehn« (13. Juli 2009, 21:55)
Benutzerinformationen überspringen
Motto: Wenn ein Text so geschrieben ist, dass man den Eindruck hat, dass es tief schneit und man verfolgt die Spur eines besoffenen Hasen im Schnee, dann müssen formal Punkte abgezogen werden.
Zitat
Er kann ja nicht wissen (und der menschliche betrachter auch nicht) ob das nicht vom künstler so gemeint ist dass die knöpfe transparent sind. Folglich kann es garkeine lösung geben.
Stimmt nicht... wenn ich es richtig verstanden hab, will Neo-Bahamut die Bilder mit mehreren verschiedenen Hintergrundfarben abspeichern. Dann ergeben sich auf den verschiedenen Bildern durch das Mischen von den Halbtransparenzen mit den Hintergrundfarben verschiedene Farben, bei den nicht-transparenten Stellen bleibt es gleich. Durch das Abgleichen könnte man dann erkennen, ob es sich um halbtransparente Stellen handelt oder ob zufällig die Hintergrundfarbe im Bild vorkommt. Also angenommen, man hat eine rote Fläche. Wenn sie halbtransparent ist, wird die bei einem grünen Hintergrund gelb, aber bei einem cyanfarbenen wird sie lila. Wenn sie nicht halbtransparent ist, bleibt sie rot. Wenn man also die Bilder mit den verschiedenen Hintergrundfarben (theoretisch müssten schon 2 ausreichen) vergleicht, sieht man, wo es gleich bleibt und wo sich die Farben wegen den Halbtransparenzen ändern. Wie man das programmieren kann, weiß ich aber nicht, sorry.
-
Signatur
-
Fatou
Name: Fatou
Geschlecht: Weiblich
Rasse: Chu'ma
Alter: 14
Beruf: Tänzerin
Startort: Irgendwo in den Himmelswiesen südwestlich von Kh'Tala
Startpost:Himmelswiesen südwestlich von Kh'Talar
Level: 1
Quest: -
Party: -
Rüstung:
- besticktes Hüfttuch
- Ketten & Amulette
- Federkopfschmuck
- Blasrohr an Lederriemen am Rücken
Inventar:
kleine Ledertasche (5/5)
- 1x Proviant
- 1x Verbandsmaterial
- kleines Messer
- 1x Sanddorn
schmaler Köcher (5/5)
- 5 einfache Holzpfeile
Geld: - - besticktes Hüfttuch
-
Handschriftdeutung
Die Deutung der Handschrift brachte folgendes Ergebnis:
Itut ist eher bescheiden und zurückhaltend.
Es reicht ihr, wenn sie nicht im Mittelpunkt steht.
Sie ist etwas selbstkritisch und kommt auch ohne die Hilfe anderer ganz gut zurecht.
Itut gibt sich sehr beherrscht bzw. diszipliniert
und besitzt einen ausgeprägten Ordnungssinn.
Itut ist bescheiden, zurückhaltend
und oft etwas eigenbrödlerisch und selbstkritisch.
Itut ist ein Gewohnheitsmensch.
Sie ist mit einer praktischen Intelligenz ausgestattet,
die ihr erlaubt, rationell zu arbeiten,
und zwar im Privat- wie auch im Berufsleben.
Für sie ist verbindliches Auftreten und Arbeiten selbstverständlich.
Sie ist sinnlich, warmherzig, gemütlich und phantasievoll.
Im Großen und Ganzen wirkt sie gelassen bis uninteressiert,
wenn sie aber von einer Sache überzeugt ist, überrascht sie
ihre Umwelt durch ihr überschwängliches und begeisterungsfähiges Auftreten.
Itut ist ein sehr gefühlsbestimmter Mensch.
Oft werden Entscheidungen gefühlsmäßig gefällt, obwohl bei
rein rationeller Überlegung eine andere Entscheidung die richtige wäre.
Itut ist überdurchschnittlich intelligent.
Nüchtern und zweckmäßig bewältigt sie ihre Aufgaben.
Itut legt Wert auf eine Grunddistanz zu ihren Mitmenschen.
Auch gute Kollegen müssen nicht alles wissen.
Sie arbeitet sehr genau und zeichnet sich durch rationales, analytisches Denken aus.
Itut ist sehr stark um Gerechtigkeit bemüht.
Sie versucht stets, sich für andere einzusetzen.
Itut geht mit viel Lebensfreude und Tatendrang vor.
Diese Vitalität wird auf künstlerischem Gebiet in große Kreativität umgewandelt.
Itut ist insofern bescheiden und wenig aufdringlich,
als dass sie es nicht nötig hat, die Umwelt bei jeder Gelegenheit
auf die eigenen Stärken aufmerksam zu machen.
Trefferquote: 100%
Wow... Das kommt wirklich absolut genau hin.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Bei einer Farbe hast du Recht, da hat man keine Chance. Wenn der Hintergrund zB Weiß (255,255,255) ist und der endgültige Pixel 128,255,255 hat, dann könnte der Pixel aus dem eigentlichen Bild ja zB 0,255,255 sein und die Transparenz ist 50% oder der Pixel ist 128,255,255 mit 100% Transparenz^^
Wenn ich aber mehrere Hintergründe vergleiche sehe ich ja, ob sich der Pixel von Bild zu Bild ändert ;)
PS: Gibts nicht ne Regel, die verbietet sich durch seinen Rang "höher erscheinen zu lassen" als man ist? Also in deinem Fall Adminstator? ;)
ich habe ein script das kann text nach einem bild einfärben ... aber wegen dem kanten glätten sieht das halt ein wenig (viel) eckig aus ... ihr vllt ne idee wie ich das ändere?
Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
/edit: Ich hab im Startpost meinen Versuch hochgeladen. Der klappt aber leider nicht :/
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo-Bahamut« (25. Juli 2009, 11:04)
einmal eine Variante mit rotem Hintergrund 255, 0, 0
einmal eine Variante mit blauem Hintergrund 0, 0, 255
=>
rorer pixel = pixel an koordinate x, y von dem Bild mit rotem Hintergrund
blauer pixel = pixel an koordinate x, y von dem Bild mit blauem Hintergrund
neuer Pixel:
alpha = 255 - (rotwert von rotem px - rotwert von blauem px)
rotwert = rotwert von blauem px * 255/alpha
grün = gründwert von blauem px * 255/alpha
blau = blauwert von rotem px * 255/alpha
edit:
Tehehe, jetzt hat Neo Ärger mit dem Ersteller der Grafiken xD
Okay, das kann man verwenden um vom farbigen Hintergrund zurück auf transparenten Hingergrund zu schließen, aber bitte nicht für die Grafiken, die Neo damit extrahieren wollte.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ankou« (27. Juli 2009, 00:54)



