• Anmelden

Neo-Bahamut

Himmelsgleicher

  • »Neo-Bahamut« ist der Autor dieses Themas

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

1

Montag, 13. Juli 2009, 01:41

Transparenzfilter

Ich brauche ein Skript bei dem ich nicht auf die Lösung komme, sonst hätte ich es selber gemacht ^^

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:
»Neo-Bahamut« hat folgende Datei angehängt:
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo-Bahamut« (25. Juli 2009, 11:04)


fette Neunzehn

Fahnenträger

Motto: Sättigung auf 255

  • Nachricht senden

2

Montag, 13. Juli 2009, 21:41

nein das ist leider nicht möglich.
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)


Itut

Schlitzohr

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.

  • Nachricht senden

3

Montag, 13. Juli 2009, 22:21

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: -
  • 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. :D

Neo-Bahamut

Himmelsgleicher

  • »Neo-Bahamut« ist der Autor dieses Themas

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

4

Montag, 13. Juli 2009, 22:49

Jep, Itut hats richtig gesagt^^
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? ;)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

5

Montag, 13. Juli 2009, 23:48

ja das Anti-aliasing ist manchmal nervig ....

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?
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

Neo-Bahamut

Himmelsgleicher

  • »Neo-Bahamut« ist der Autor dieses Themas

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

6

Samstag, 18. Juli 2009, 14:59

*bump*
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Neo-Bahamut

Himmelsgleicher

  • »Neo-Bahamut« ist der Autor dieses Themas

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

7

Freitag, 24. Juli 2009, 12:10

BUMPI-HUMPI

/edit: Ich hab im Startpost meinen Versuch hochgeladen. Der klappt aber leider nicht :/
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Neo-Bahamut« (25. Juli 2009, 11:04)


8

Samstag, 25. Juli 2009, 23:25

Okay, Neo ist zwar jetzt erstmal gebannt, aber die Lösung hab ich ihm per ICQ vermittelt, das hier ist noch für die Nachwelt, für die die es interessiert.
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)


Social Bookmarks