Monochromes oder Graustufen Bild

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Xenon

Betreff: Monochromes oder Graustufen Bild

BeitragDo, Jul 01, 2004 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Wurde nach dem Code gefragt =)

Code: [AUSKLAPPEN]
Function BlackImage(img)
   width = ImageWidth(img)-1
   height = ImageHeight(img)-1
   SetBuffer ImageBuffer(img)
   LockBuffer
   For i=0 To width
      For j=0 To height
         r = ReadPixelFast(i, j)
         g = (r Shr 8) And $FF
         b = r And $FF
         r = (r Shr 16) And $FF
         r = (r+g+b)/3
         r = $FF000000 Or (r Shl 16) Or (r Shl 8) Or r
         WritePixelFast i, j, r
      Next
   Next
   UnlockBuffer
End Function
  • Zuletzt bearbeitet von Xenon am Sa, Jul 03, 2004 10:38, insgesamt einmal bearbeitet
 

CodeMaster

BeitragDo, Jul 01, 2004 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist aber, wenn mich nicht alles täuscht (und ich hab mir den Code nur etwa 2 Sekunden angesehen) keine Monochrom- sondern eine Graustufenkonvertierung, oder?
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.

Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102

Vertex

BeitragDo, Jul 01, 2004 21:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Jenau, monochrome wäre es so:
Code: [AUSKLAPPEN]
Function MonochromeImage(img, value=127)
   width = ImageWidth(img)-1
   height = ImageHeight(img)-1
   SetBuffer ImageBuffer(img)
   LockBuffer
   For i=0 To width
      For j=0 To height
         r = ReadPixelFast(i, j)
         g = (r Shr 8) And $FF
         b = r And $FF
         If (r+g+b)/3 > value Then
            WritePixelFast i, j, $000000
         Else
            WritePixelFast i, j, $FFFFFF
         EndIf
      Next
   Next
   UnlockBuffer
End Function

(ungetestet!)
ist wie bei Photoshop(Schwellenwert)
mfg olli

Xenon

BeitragSa, Jul 03, 2004 10:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ohh sry, wusste nicht das monochrom wirklich schwarz-weiß oder nur graustufenkonvertierung heisst, hab threadtitel geändert

Travis

BeitragSa, Jul 03, 2004 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Und jetzt noch einmal eine Funktion mit der man die Farbintensität eines Bildes regeln kann. Es muss das Bild und die Farbintensität in Prozent angegeben werden.

Code: [AUSKLAPPEN]

Function Sattigung(Bild,Prozent#)
 
 Prozent = 100-Prozent

 LockBuffer ImageBuffer(Bild)

 For y = 0 To ImageHeight(Bild)
  For x = 0 To ImageWidth(Bild)
   rgb = ReadPixelFast(x,y,ImageBuffer(Bild))
   a=(rgb And $FF000000)/$1000000
   r=(rgb And $FF0000)/$10000
   g=(rgb And $FF00)/$100
   b=rgb And $FF

   z = 0.299*r + 0.587*g + 0.114*b

   If r > z Then r = r - (Abs(z-r) * (Prozent/100))
   If r < z Then r = r + (Abs(z-r) * (Prozent/100))
   If g > z Then g = g - (Abs(z-g) * (Prozent/100))
   If g < z Then g = g + (Abs(z-g) * (Prozent/100))
   If b > z Then b = b - (Abs(z-b) * (Prozent/100))
   If b < z Then b = b + (Abs(z-b) * (Prozent/100))
   
   rgb=a*$1000000 + r*$10000 + g*$100 + b
   WritePixelFast(x,y,rgb,ImageBuffer(Bild))
  Next
 Next

 UnlockBuffer ImageBuffer(Bild)

End Function
www.funforge.org

Ich hasse WASD-Steuerung.

Man kann alles sagen, man muss es nur vernünftig begründen können.

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group