 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
06.10.2004, 14:16
|
#1
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
Foto dynamisch einfärben?
Hallo,
ich bin am überlegen, ob und wie ich eine Grafik dynamisch einfärben kann.
Beispiel:
Ein Produkt (z. B. ein Auto oder ein Kugelschreiber) wird als Bild auf einer Website gezeigt. Der Besucher soll nun aus einer Palette eine andere Farbe auswählen können und das Produkt wird nun in der gewünschten Farbe dargestellt. Vorlage ist ein Foto, keine Vektor-Datei (z. B. SVG).
Kann man sowas mit ImageMagick hinkriegen? Oder ist der Versuch zwecklos und ich sollte lieber die Bilder per PS oder FW einfärben und einzeln auf dem Server ablegen? Das allerdings wäre für den geplanten Zweck etwas umständlich.
Freue mich auf eure Tips!
Gruß
Tribun
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
06.10.2004, 14:28
|
#2
|
|
TP-Supporter
Registriert seit: Jun 2003
Ort: Fürth
|
hallo,
abgesehen, dass es sogar mit der GD-LIB möglich ist, ein bild einzufärben
ist es meiner Meinung nach eher nicht sinnvoll, das per php zu realisieren...
ich würde dann doch lieber den Umweg gehen und jedes Farbbild einzeln auf den Server zu packen
das spart dann doch dem Server Rechenzeit und der Besucher wartet dann doch nicht so lange, 
__________________
Die perfekte Web-Applikation ist: sicher,skalierbar,schnell, anwenderfreundlich,intuitiv, wiederverwendbar,flexibel,transparent,umfassend,dynamisch, zuverlässig,einfach,modular,effizient, stabil,handhabbar,verteilt,robust, persistent,kollaborativ,mächtig,intelligent,leicht verwendbar,portierbar,erweiterbar,
fehlerfrei, und zu guter Letzt billig
|
|
|
06.10.2004, 14:51
|
#3
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Das Hauptproblem beim Umfärben eines Objekts auf einem Foto ist wohl, dass selbst ein an sich einfarbiger Gegenstand auf dem Bild wegen Schattierungen und Reflexionen nicht einfarbig ist.
Wenn du ein fotorealistisch abgebildetes Objekt umfärben möchtest, dürftest du deshalb von jedem Pixel nicht die endgültige Farbe, sondern nur den Tonwert ändern.
Theoretisch machbar wäre das, wie CB.NET schon sagt, auch mit der GD-Lib, entsprechenden Denkaufwand vorausgesetzt  .
Wie gut es aber im Endeffekt tatsächlich gelingt, kann ich momentan nicht einschätzen, dazu hab ich zu wenig Erfahrung in Sachen Bildbearbeitung.
"Pipileicht" wäre es hingegen, wenn du deine Fotos im Grafikprogramm so vorbeiten würdest, dass die umzufärbenden Flächen wirklich einfarbig sind, und zwar in einer speziellen Farbe, die sonst nirgendwo im Bild vorkommt.
Dann könnte man in einer primitiven zweidimensionalen Schleife das Bild Pixel für Pixel abtasten und jeden gefundenen Pixel in der "Ersetzfarbe" beliebig umfärben. Sieht bei Fotos halt nicht mehr so toll aus...
Was die Rechenleistung betrifft, hab ich keine Bedenken. Ich würde alle erzeugten Bilder auf der Festplatte speichern. Wenn dann das Bild für eine gewünschte Farbe schon vorhanden ist, braucht es nicht neu generiert zu werden.
|
|
|
06.10.2004, 17:01
|
#4
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
An das mit der "einen Farbe" habe ich auch gedacht. Rein theoretisch müsstest du dann nur einen Farbindex in der Palette neu setzen und das Bild wäre fertig  Sollte auch performance-mässig noch ganz gut sein (denke ich mal). Das mit der Schleife - Pixel für Pixel - kannst du dir auf alle Fälle sparen.
Evtl. kann man aber auch über die gesamte Palette die Farben ändern, wenn diese nach einem bestimmten schema aufgebaut ist... nur ne Idee... obs umzusetzen ist: keine Ahnung
Gruss
Jan
|
|
|
06.10.2004, 17:16
|
#5
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Zitat:
|
Rein theoretisch müsstest du dann nur einen Farbindex in der Palette neu setzen und das Bild wäre fertig Sollte auch performance-mässig noch ganz gut sein (denke ich mal). Das mit der Schleife - Pixel für Pixel - kannst du dir auf alle Fälle sparen.
|
Stimmt, das ist wesentlich schlauer (vergiss das mit der Schleife ganz, ganz schnell, ok?  ).
|
|
|
06.10.2004, 17:37
|
#6
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Mir fällt gerade ein, wie man eine Umfärbung mit Beibehaltung von Schattierungen und Reflexionen sehr einfach mit wahrscheinlich gutem, wenngleich nicht perfektem Ergebnis bewerkstelligen könnte:
Du bearbeitest deine Originalfotos so, dass jeder umzufärbende Pixel nur noch in Graustufen gespeichert wird (also gleiche Anteile Rot, Grün und Blau).
Damit behalten die umzufärbenden Pixel die Information über ihre Helligkeit und können trotzdem noch vom Programm als Umfärbe-Kandidaten erkannt werden (nämlich eben darüber, dass R, G und B identisch sind).
Mit der Doppelschleife (die du diesmal wirklich bräuchtest, falls mir nicht gerade wieder der Supertrick nicht einfällt) könntest du dann jeden dieser Pixel mit teiltransparenter Farbe "übermalen" (Farberzeugung per imagecolorallocatealpha) oder alternativ eine neue, 100% deckende Farbe anhand des ursprünglichen Farbwertes erzeugen (z.B. +30% grün gegenüber dem jeweiligen Grauton).
Vielleicht ist das die Vorgehensweise mit dem besten Verhältnis von Aufwand zu Resultat.
EDIT
Und eben fällt mir noch eine bessere Methode ein, aber da ich heute auch mal noch was anderes tun sollte als einen Forenbeitrag nach dem anderen zu schreiben  , wart ich erstmal ab, was du vom Vorschlag oben hältst. Vielleicht reicht der dir ja.
Geändert von seb (06.10.2004 um 17:57 Uhr).
|
|
|
06.10.2004, 18:30
|
#7
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
Ui ui ui... Ihr seid echt klasse!
Da muss ich mal sehen, wie ich das mache.... Stecke in der GDLib ja gar net so tief drin...
Zitat:
|
Zitat von seb
Und eben fällt mir noch eine bessere Methode ein
|
Nur her damit! 
Bin für alles dankbar. 
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
06.10.2004, 19:06
|
#8
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Scheiße...wenn mich mal irgendeine Idee gepackt hat, kann ich's nicht seinlassen.
Here we go:
Original:
Rot:
Komisches Blau, noch nicht sauber:
In Richtung Gelb:
Wie man sieht, ist die Farbneuzuordnung noch nicht ausgereift, aber das kann man natürlich noch verbessern.
Dummerweise bin ich rotblind und kann deshalb viele Farbtöne nicht unterscheiden, d.h. mir fällt es bei solchen Sachen schwer, die Ergebnisse auszuwerten und daraus Schlüsse auf Verbesserungsmöglichkeiten bei der Farbberechnung zu ziehen.
Ich hab z.B. nur mit der Photoshop-Pipettenfunktion bemerkt, dass der Fuß des Frosches in allen verfärbten Bildern immer noch Grün ist...das is ein bisschen blöd...aber naja.
Geändert von seb (06.10.2004 um 19:15 Uhr).
|
|
|
06.10.2004, 19:17
|
#9
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Geil! 
|
|
|
06.10.2004, 19:19
|
#10
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Das ist übrigens nicht die Methode mit den Graustufen, sondern diejenige, mit der es noch besser gehen müsste. Aber wie gesagt, ich hab echt Probleme, die Ergebnisse einzuschätzen.
Wie groß sind die Farbunterschiede auf der Fläche des Frosches bei den verschiedenen Bildern? Sind die richtig bunt oder könnte man sie so lassen?
|
|
|
06.10.2004, 19:21
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Die Flächen sehen klasse aus... nur der Gelde ist halt mehr grün... Aber cool!
|
|
|
06.10.2004, 19:31
|
#12
|
|
TP-Insider
Registriert seit: Jun 2003
Ort: Beckingen, Saarland
|
Boah! Ich bin dermassen begeistert! *hechel*
__________________
if (!isset($plan)) {
$antwort1 = forum_suche($frage);
$antwort2 = google_suche($frage);
if ($antwort1 == "" && $antwort2 == "") {
$post = forum($frage);
$plan = $post;
}
}
array_push($community, $plan);
|
|
|
06.10.2004, 23:20
|
#13
|
|
TP-Veteran
Registriert seit: Jan 2002
|
|
|
|
06.10.2004, 23:32
|
#14
|
|
Guest
Registriert seit: Aug 2002
|
Was hast du denn für Methode angewendet? Das dauert ja bischl... 
|
|
|
06.10.2004, 23:48
|
#15
|
|
TP-Veteran
Registriert seit: Jan 2002
|
Für dieses Bild 192600 mal imagecolorat(), 96300 mal setpixel() + eine Hand voll Farbumrechnungen  . Ist noch nicht geschwindigkeitsoptimiert, falls das überhaupt mit vernünftigem Aufwand möglich ist.
Die umzufärbende Fläche wird jetzt doch zuerst in Graustufen konvertiert. Die vermeintlich noch bessere Möglichkeit war ein Denkfehler.
Geändert von seb (07.10.2004 um 00:17 Uhr).
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:36 Uhr.
|
 |