Schrift mit Schatten
Übersicht

![]() |
faggieBetreff: Schrift mit Schatten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Wenn ich mit BlitzMax einen Text ausgebe, wird der pixelig dargestellt, d.h. es ist kein Übergang zwischen Text und Hintergrund vorhanden. Das einzigste, was ich brauche ist ja im Prinzip ein Schatten, der einen weichen Übergang zwischen Text und Hintergrund darstellt. Hier ein übertriebenes Beispiel zur Verdeutlichung: Wie kann man soetwas realisieren? Gibt es eventuell schon eine Funktion dafür? Gruß, faggie |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest den Text erst dunkler ausgeben und um ein oder 2 pixel versetzt, dann Farbe ändern und ihn nochmal rendern. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
simi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eventuell hilft schon SetBlend ALPHABLEND ..... | ||
![]() |
rema |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein guter Tip: verwende die Cairo Blibliothek! Da kannst du echt coole Sachen machen.
Hier die Hauptseite: http://cairographics.org/ , die Tutorials sind nicht gerade berauschend, aber ausreichend. Hier die Samples: http://cairographics.org/samples/text.html Hier kannst du die Bibliothek für BMax runterladen: http://www.brucey.net/programming/blitz/ , unter MacG5 ist das aber so eine Sachen. Mit IntelMac oder halt Windows & Linux ist es kein Problem. Mehr Infos findest du auch noch im eng. Forum: http://www.blitzbasic.com/Comm...s=BlitzMax |
||
![]() |
faggie |
![]() Antworten mit Zitat ![]() |
---|---|---|
@rema: Leider funktioniert die Bibliothek bei mir nicht. ![]() |
||
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
hier haste ne lib von mir wo so einiges drin is, müsste dir also helfen...
is zwar blitzbasic aber lässt sich bestimmt schnell convertieren. ![]() Code: [AUSKLAPPEN] Const SPEED=2
Graphics 640,480,16,2 SetBuffer BackBuffer() ClsColor 100, 100, 100 Cls Text_Word$="WWW.BlitzForum.DE" fntArial = LoadFont( "Arial", 32, True, False, False ) fntArial2 = LoadFont( "Arial", 32, True, False, False ) X=600 While Not KeyDown(1) zText( fntArial, X, 10 ,Text_Word$, 100, 100, 100, 0, 50 ) zText( fntArial, X, 60 ,Text_Word$, 100, 100, 100, 1, 50 ) zText( fntArial, X, 110,Text_Word$, 200, 200, 200, 2, 50, 4, 4 ) zText( fntArial, X, 170,Text_Word$, 200, 200, 200, 3, 50, 16, 135 ) zText( fntArial, X, 230,Text_Word$, 255, 0, 0, 4, 255, 255, 255 ) zText( fntArial, X, 280,Text_Word$, 255, 255, 255, 5, 0 ) zText( fntArial, X, 330,Text_Word$, 255, 255, 255, 5, 1 ) zText( fntArial, X, 390,Text_Word$, 255, 255, 0, 6, 255, 0, 0 ) X=X-SPEED If Len(Text_Word$)>X+1200 Then X=600 Flip:Cls Wend End ;---------------------------------------------------------------------------------------------------- ; INPUTS: X, Y, TXT$, R, G, B, MODE + 3 optional parameters ; BEVEL: PARM1 = HIGHLIGHT STRENGTH ; EMBROSS: PARM1 = HIGHLIGHT STRENGTH ; DROP SHADOW: PARM1 = SHADOW GREY COLOR (0-255) , PARM2 = X-OFFSET , PARM3 = Y-OFFSET ; 3D SHADOW: PARM1 = SHADOW GREY COLOR (0-255) , PARM2 = SHADOW DEPTH , PARM3 = SHADOW ANGLE ; OUTLINE: PARM1 = OUTLINE RED, PARM2 = OUTLINE GREEN , PARM3 = OUTLINE BLUE ; MIRRORED: PARM1 = 0=HORIZONTAL , 1=VERTICAL ; GRADIENT: PARM1 = GRADIENT RED , PARM2 = GRADIENT GREEN , PARM3 = GRADIENT BLUE ; SINE: PARM1 = STARTING VALUE , PARM2 = AMPLITUDE , PARM3 = FREQUENCY ; CIRCLE: PARM1 = STARTING VALUE , PARM2 = DEGREES , PARM3 = RADIUS ; RETURNS: nix ;--------------------------------------------------------------------------------------------------- Function zText( FONT, X, Y, TXT$, R, G, B, MODE, PARM1=0, PARM2=0, PARM3=0 ) SetFont FONT Select MODE Case 0 ; BEVEL Color R + PARM1, G + PARM1, B + PARM1 Text X-1, Y-1, TXT$ Color R - PARM1, G - PARM1, B - PARM1 Text X+1, Y+1, TXT$ Color R, G, B Text X, Y, TXT$ Case 1 ; EMBROSS Color R + PARM1, G + PARM1, B + PARM1 Text X+1, Y+1, TXT$ Color R - PARM1, G - PARM1, B - PARM1 Text X-1, Y-1, TXT$ Color R, G, B Text X, Y, TXT$ Case 2 ; DROP SHADOW Color PARM1, PARM1, PARM1 Text X + PARM2, Y + PARM3, TXT$ Color R, G, B Text X, Y, TXT$ Case 3 ; 3D SHADOW Color PARM1, PARM1, PARM1 For i = 0 To PARM2 Text X + Sin( PARM3 ) * i, Y + Cos( PARM3 ) * i, TXT$ Next Color R, G, B Text X, Y, TXT$ Case 4 ; OUTLINE Color PARM1, PARM2, PARM3 For yy = -1 To 1 For xx = -1 To 1 Text X + xx, Y + yy, TXT$ Next Next Color R, G, B Text X, Y, TXT$ Case 5 ; MIRRORED temp = CreateImage( StringWidth( TXT$ ), StringHeight( TXT$ ) ) buffer = GraphicsBuffer() SetBuffer ImageBuffer( temp ) SetFont FONT Color R, G, B Text 0, 0, TXT$ SetBuffer buffer Select PARM1 Case 0 ; HORIZONTAL For i = 0 To ImageWidth( temp )-1 DrawImageRect temp, X, Y + ImageHeight( temp )-1-i, 0, i, ImageWidth( temp ), 1 Next Case 1 ; VERTICAL For i = 0 To ImageWidth( temp )-1 DrawImageRect temp, X + ImageWidth( temp )-1-i, Y, i, 0, 1, ImageWidth( temp ) Next End Select FreeImage temp Case 6 ; GRADIENT temp = CreateImage( StringWidth( TXT$ ), StringHeight( TXT$ ) ) buffer = GraphicsBuffer() SetBuffer ImageBuffer( temp ) SetFont FONT Color 255, 255, 255 Text 0, 0, TXT$ LockBuffer ImageBuffer( temp ) rr# = R : gg# = G : bb# = B rstep# = ( R - PARM1 ) / ImageHeight( temp ) gstep# = ( G - PARM2 ) / ImageHeight( temp ) bstep# = ( B - PARM3 ) / ImageHeight( temp ) For yy = 0 To ImageHeight( temp )-1 For xx = 0 To ImageWidth( temp )-1 If ( ReadPixelFast( XX, YY, ImageBuffer( temp ) ) And $FFFFFF ) <> $000000 Then rgb = Int( rr# ) Shl 16 + Int( gg# ) Shl 8 + Int( bb# ) WritePixelFast XX, YY, rgb, ImageBuffer( temp ) End If Next rr# = rr# - rstep# : gg# = gg# - gstep# : bb# = bb# - bstep# Next UnlockBuffer ImageBuffer( temp ) SetBuffer buffer DrawImage temp, X, Y FreeImage temp Case 7 ; SINE temp = CreateImage( StringWidth( TXT$ ), StringHeight( TXT$ ) ) buffer = GraphicsBuffer() SetBuffer ImageBuffer( temp ) SetFont FONT Color R, G, B Text 0, 0, TXT$ SetBuffer buffer start = PARM1 For i = 0 To ImageWidth( temp )-1 DrawImageRect temp, X + i, Y + Sin( start ) * PARM2, i, 0, 1, ImageHeight( temp ) start = start + PARM3 Next FreeImage temp Case 8 ; CIRCLE chars = Len( TXT$ ) angle# = PARM1 dist# = PARM2 / chars For i = 0 To chars-1 Text X + Cos( angle# ) * PARM3, Y + Sin( angle# ) * PARM3, Mid( TXT$, i+1, 1 ) angle# = angle# + dist# Next End Select End Function |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group