po polsku
Strona: [ > ] z 1
Autor
Temat: Mapa monochromatyczna
mikmas
From £ód¼ Stadt
Typ:
neutral
Postów: 772
Zarejestrowany: Apr 2003
Mapa monochromatyczna
Jak zapisaæ obraz z picturebox'a w 2 kolorach??
[Post edytowany dnia 21-05-2004 20:23 przez mikmas]
_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50
21-05-2004 20:23
3632553
m-a-x
Typ:
neutral
Postów: 366
Zarejestrowany: Jan 2003
Je¿eli nie przeszkadza Ci fakt ¿e bedziesz musia³ u¿yæ dodatkowego dll'a to mam pewnego sampla (wraz z tym dll'em). Jak chcesz moge Ci wys³aæ.
_____________________________________________
Problemem zazwyczaj nie jest brak osób znaj±cych odpowied¼ a zadanie w³a¶ciwego pytania!
21-05-2004 22:35
bisiek
Typ:
neutral
Postów: 487
Zarejestrowany: Jul 2003
Spróbuj to zrobiæ tak: ustaw w pictureboxie AutoRedraw na True, potem zmieñ kolory na czarne i bia³e i zapisz poleceniem SavePicture.
_____________________________________________
www.mob.abc.pl - moja strona o VB
22-05-2004 10:11
3380672
bisiek
Typ:
neutral
Postów: 487
Zarejestrowany: Jul 2003
Przyk³adowy kod zamiany na czarno/bia³y i zapisanie do pliku:
For i = 0 To Picture1.Width 'Step 15 'dla twipów
For j = 0 To Picture1.Height 'Step 15 'dla twipów
c = Picture1.Point(i, j)
r = c And 255
g = Int(c / 256) And 255
b = Int(c / 65536) And 255
If r + g + b > 138 * 3 Then c = RGB(255, 255, 255) Else c = 0
Picture1.PSet (i, j), c
Next j
Next i
SavePicture Picture1.Image, "C:\abcdef.bmp"
_____________________________________________
www.mob.abc.pl - moja strona o VB
22-05-2004 10:16
3380672
hicks
raptor user
Typ:
moderator
Postów: 279
Zarejestrowany: Apr 2003
Kurcze bisiek mnie wyprzedzi³, ale i tak podam swoj± wersjê
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Type COLOR_TYPE
lngRed As Long
lngGreen As Long
lngBlue As Long
End Type
Private Sub ConvertToBW(picSrc As PictureBox, picDest As PictureBox, lngLightValue As Long)
Dim lngKolor As Long, TColor As COLOR_TYPE
lngLightValue = lngLightValue * 3
For petlaX = 0 To picSrc.Width / 15
For petlaY = 0 To picSrc.Height / 15
' pobieramy kolor
lngKolor = GetPixel(picSrc.hdc, petlaX, petlaY)
TColor = GetRGBColor(lngKolor)
If TColor.lngRed + TColor.lngGreen + TColor.lngBlue >= lngLightValue Then
SetPixel picDest.hdc, petlaX, petlaY, RGB(255, 255, 255)
ElseIf TColor.lngRed + TColor.lngGreen + TColor.lngBlue < lngLightValue Then
SetPixel picDest.hdc, petlaX, petlaY, RGB(0, 0, 0)
End If
DoEvents
Next petlaY
Next petlaX
End Sub
Private Function GetRGBColor(Color) As COLOR_TYPE
B = (Color / &H10000) And &HFF
G = (Color / &H100) And &HFF
R = Color And &HFF
GetRGBColor.lngRed = R
GetRGBColor.lngGreen = G
GetRGBColor.lngBlue = B
End Function
Ju¿ obja¶niam:
ConvertToBW(picSrc As PictureBox, picDest As PictureBox, lngLightValue As Long)
picSrc to picturebox ¼ród³owy...
picDest to picbox docelowy,
lngLightValue to wspó³czynnik ¶wiat³a przyjmuje warto¶c od 0 do 255, zale¿nie od niego obrazek bêdzie bardziej czarny lub bia³y...
[Post edytowany dnia 22-05-2004 10:44 przez hicks]
_____________________________________________
TLHW Clan member
22-05-2004 10:40
2511367
mikmas
From £ód¼ Stadt
Typ:
neutral
Postów: 772
Zarejestrowany: Apr 2003
Dziêki wszystkim!! . Bardzo mi pomogli¶cie
_____________________________________________
4C;65;70;69;65;6A;20;62;79;9C;20;73;69;EA;20;
62;61;72;64;7A;69;65;6A;20;73;6B;6F;6E;63;65;
6E;74;72;6F;77;61;B3;20;6E;61;20;6F;64;70;6F;
77;69;65;64;7A;69;2C;20;61;20;6E;69;65;20;6E;
61;20;72;6F;7A;73;7A;79;66;72;6F;77;79;77;61;
6E;69;75;20;3A;50
23-05-2004 18:23
3632553
Wszystkich odpowiedzi: 5 ::
Maxymalnie na stronê: 20
Strona: [ > ] z 1
zanotowane.pldoc.pisz.plpdf.pisz.plpajaa1981.pev.pl