Monochromes oder Graustufen Bild
Übersicht

![]() |
XenonBetreff: Monochromes oder Graustufen Bild |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ohh sry, wusste nicht das monochrom wirklich schwarz-weiß oder nur graustufenkonvertierung heisst, hab threadtitel geändert | ||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group