Farbwerte korrigieren
Übersicht

![]() |
KabelbinderSieger des WM-Contest 2006Betreff: Farbwerte korrigieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man Bilder mit RotateImage drehen will, muss man ja TformFilter auf 0 setzen, damit man Später keinen unschönen Rand in der Mask-Farbe um das Bild herum hat.
Mit dieser einfachen Funktion kann man diesen Rand etwas reduzieren: Code: [AUSKLAPPEN] Graphics 640,480,16,1
TFormFilter 1 bild = CreateImage(100,100) MaskImage bild,255,0,255 MidHandle bild SetBuffer ImageBuffer(bild) Color 255,0,255 Rect 0,0,100,100 Color 0,0,255 Rect 0,40,100,20 Color 255,255,0 Rect 40,0,20,100 Color 255,0,0 Oval 20,20,60,60 Dim kreuz(180) For i = 1 To 180 Step 2 kreuz(i) = CopyImage(bild) RotateImage kreuz(i),i ;======================================== korrigiere(kreuz(i),255,0,255,150,150,80) ;======================================== kreuz(i+1)=CopyImage(kreuz(i)) Next rot = 1 Function korrigiere(img,rw,gw,bw,breit,hoch,grenze) SetBuffer ImageBuffer(img) LockBuffer For nr = 0 To breit For nu = 0 To hoch norm = rw*$10000+gw*$100+bw wert = ReadPixelFast(nr,nu) r = (wert And $FF0000)/$10000 g = (wert And $FF00)/$100 b = wert And $FF If r>rw-grenze And r<rw+grenze And g>gw-grenze And g<gw+grenze And b>bw-grenze And b<bw+grenze Then WritePixelFast nr,nu,norm,ImageBuffer(img) EndIf Next Next UnlockBuffer SetBuffer BackBuffer() End Function SetBuffer BackBuffer() Repeat If rot = 180 Then rot = 1 Else rot = rot + 1 EndIf DrawImage kreuz(rot),320,240 Flip Cls Until KeyHit(1) End Wenn ihr Zeile 21 auskommentiert, ist der Rand wieder erkennbar. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group