Det du begiver dig ud i er alt andet end let og enkelt. Men dog muligt:
Du skal bruge Windows API kald og behandle din bitmap afhængigt af hvad du vil. Hvordan du lige lave en "error diffusion" rutine kan jeg ikke hjælpe til med da jeg ikke selv er så stærk på det område, men for at ændre på bitmaps, farvedybde, farvetyper o.s.v. skal du bruge følgende API kald og windows strukturer:
det forstår jeg, men der findes ikke en speciel "Error Diffusion" funktion / API. Der er noget du selv skal lave og det gøres via det API kald jeg har angivet.
Speedy, Error Diffusion går ud på at fordele fejlene.
Man bruger normalt en ret enkel algoritme, der kører rækkevis - dvs. fejlene bliver fordelt indenfor samme række.
Normal fremgangsmåde: pixel1.color := bedste bud (man kan ikke error-diffuse den første pixel). Fejlen mellem den nye farve og den oprindelige mellemlagres i en variabel, fx. DC ("Delta Color").
Pixel2.Color udregnes som "bedste bud + DC". Igen vil en ny fejl opstå, som igen lagres i DC.
Og så gentages proceduren hele linien igennem. Er den til at forstå?
Pseudokode: DC := 0; for P := 0 to N-1 do begin OldColor := Pixel[P].Color; Pixel[P].Color := CalcNearesColor[DC+Pixel[P].Color]; DC := Pixel[P].Color-OldColor; end;
Tak for hjælpen begge to. Undskyld det tog så lang tid, men jeg havde ikke fået en E_mail reply fra eksperten om at en ny havde svaret. Men det havde der ;-)
/SpEeDy
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.