Programmieren - alles kontrollieren 4.937 Themen, 20.662 Beiträge

Pixelfarbe mit Delphi verändern - Problem

The MOD / 10 Antworten / Flachansicht Nickles

hi,

hab ein kleines Programm geschrieben, das ein Bild in die Image- Komponente
läd und über canvas die Farbwerte der Pixel zurückgibt. Bloß kann ich die
ursprüngliche Pixelfarbe aber nicht ändern!!

Das Bild in der Image-Komponente ist doch unabhängig von dem Attributen von
dem ursprünglichen Bild, oder?? ALso schreibgeschützt ist es nicht!

Woran könnte das liegen???


mfg the-mod

bei Antwort benachrichtigen
Borlander The MOD „hi, Kann jetzt jeden Pixel manipulieren, aber nur mit bmps und mit bis zu 16...“
Optionen

Nabend

Dauert bei Größeren Bilder ziemlich lange und belastet - 100% CPU Auslastung für mehrere Sekunden!!
Arbeitest Du immer noch mit Pixels oder schon mit ScanLine?
Falls es mit ScanLine immer noch so lange dauert dann solltest über eine verbesserung des Algorithmus nachdenken - ggf. mit Inline-ASM arbeiten (wobei ein optimaler Object-Pascal Code nicht zwangsläufig langsamer sein muß - zumindest nicht messbar, bei ASM wird man i.d.R. allerdings automatisch effizenten Code produzieren)...

Jpgs ging irgendwie nicht
Wie gingen die nicht?
Hat sich im Bild nichts geändert? Wäre kein Wunder da die Standardpalette vor allem die Farbkanalwerte 255 nutzt, bei der JPG-Kompression werden jedoch Abweichungen von durchschnittswerten verwendet und daher dürfte dieser Extremwerthöchstens bei einfarbigen Flächen mit der entsprechenden Farbe auftauchen...

und bei mehr Farben erfordert es genaue Details über die verschiedenen Farben!
Da wirst Du um die Manipulation mit einer Funktion die eine neue (Farbkanal)Farbe in Abhängigkeit von der ursprünglichen (Farbkanal)Farbe zurückgibt nicht herumkommen...


Gruß
Borlander

bei Antwort benachrichtigen