Problem mit ImageBuffer
Übersicht

![]() |
MBCBetreff: Problem mit ImageBuffer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
Also, ich habe mir den FontCreator aus diesem https://www.blitzforum.de/view...ontcreator Topic (dritter Beitrag) genommen und ein wenig damit rumexperimentiert. Und irgendwie ist da was komisch: Wenn ich den Text so mit Code: [AUSKLAPPEN] Setbuffer BackBuffer() BMPText normal,0,0,"Hallo!" flip WaitKey() schreibe wird der auch prima angezeigt. so weit so gut. Wenn ich dasselbe nun aber im imageBuffer mach, also Code: [AUSKLAPPEN] bild=createimage(800,600) Setbuffer ImageBuffer(bild) BMPText normal,0,0,"Hallo!" setbuffer backbuffer() drawimage bild,0,0 mache, dann wird da irgendwie nix angezeigt ![]() Weiß jemand warum? Und falls hier ein Fehler liegen sollte, das ist mein test-code: Code: [AUSKLAPPEN] Include "bmpfont.bb"
Graphics 800,600,32,1 SetBuffer BackBuffer() normal=LoadBMPFont("normal") Color 0,0,0 ClsColor 255,255,255 Cls bild=CreateImage(800,600) SetBuffer ImageBuffer(bild) BMPText normal,10,10,"Hallo Welt!!!" SetBuffer BackBuffer() Text 0,5,"Das Bild:" DrawImage bild,100,5 Text 0,BMPFontHeight(normal)+30,"Der Text:" BMPText normal,100,BMPFontHeight(normal)+30,"Hallo Welt!!!" Flip WaitKey() also, danke schon im vorraus MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab das auch noch nicht so ganz durchschaut ![]() Code: [AUSKLAPPEN] Setbuffer ImageBuffer(bild) bild=createimage(800,600) BMPText normal,0,0,"Hallo!" setbuffer backbuffer() drawimage bild,0,0 Flip Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
funktioniert leider auch nicht ![]() Trotzdem danke @ Jiriki MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Definitiv nicht. Du kannst keinen Buffer nutzen den du noch garnicht erzeugt .
Das Problem scheint eher zu sein, dass der 2te BMPFont an den mehr oder weniger gleichen Ort zeichnet wie das erste Mal ... versuchs ma mit weiter unten hinschreiben ... ( Obs BMPFont intern Probleme geben könnt, weiss ich nicht, da ich es nicht benutze ) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hast du die Falsche Maskierung drin. Also der Hintergrund istz ja weiß, schau mal nach.
Ansonsten sehe ich ImageBuffer-mäßig da überhaupt kein Problem. Mit normalem Text z.B. geht das: Code: [AUSKLAPPEN] Graphics 800,600,32,1
SetBuffer BackBuffer() ;normal=LoadBMPFont("normal") normal = LoadFont("Century",20,1,0,1) SetFont normal Color 0,0,0 ClsColor 255,255,255 Cls bild=CreateImage(800,600) SetBuffer ImageBuffer(bild) Text 10,10,"Hallo Welt!!!",0,0 SetBuffer BackBuffer() Text 0,5,"Das Bild:" DrawImage bild,100,5 ;Text 0,BMPFontHeight(normal)+30,"Der Text:" ;BMPText normal,100,BMPFontHeight(normal)+30,"Hallo Welt!!!" Flip WaitKey() Vielleicht liegt der Fehler an der Funktion. Bist du sicher, dass du sie richtig angewandt hast? |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
das ist es leider auch nicht. man sieht auch mit bunten Hintergrund unsd so nix. Und ich bin mir ziemlich sicher, die Funktion richtig angewandt zu haben, da der Text ohne Imagebuffer funktioniert. Irgendwie komisch. Dann kanns doch eigentlich nur noch an der include liegen, das die mit Imagebuffer nicht klar kommt. Aber gibt's sowas überhaupt!?!? *jetzttotalverwirrtsei*
Naja, gut dann, falls jemand noch was weiß, weitere Antworten sind durchaus erwünscht Danke für alle antworten bisher Mfg MBC |
||
Computer sind auch nur Menschen! ![]() |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
Ich vermute mal es liegt an der "Font Library". Vielleicht ist da ein Setbuffer Backbuffer() im Code drin, so dass es gar nicht gehen kann. Schau mal im Include. Könntest ja auch mal wichtige Zeilen pasten. MfG |
||
![]() |
MBC |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich verzweifel noch! Da ist kein, aber auch gar kein setbuffer, cls oder flip oder sowas drin! Warum geht denn das dann nicht!?
Falls e was bringt, ist hier mal die Schreib-Funktion aus der Include: Code: [AUSKLAPPEN] Function BMPText(bmpfnt,x#,y#,txt$,h_align=0,v_align=0,width=0) ; x,y - coordinates ; txt$ - Text to display on the screen ; h_align - should text be horizontally centred? ; v_align - should text be vertically centred? ; width - if greater than 0, text is wrapped to that width ; This function returns the total height of the BMPtext which ; is useful if you want to set other values like window heights ; to the height of the text as it wraps. ; If you wish to retrieve the height without drawing text, then see ; the BMPTextHeight command Local xx#,yy# fnt.bmpfont = Object.bmpfont(bmpfnt) flines=fnt\height[Asc("X")] maxasc=122+4*fnt\extrachar+(255-126)*fnt\extendedchar If width>0 txt=txt+" " i=0 ww=0 While Instr(txt," ",i+1)>0 For j=i+1 To Instr(txt," ",i+1) a=Asc(Mid(txt,j,1)) If a=>Asc(" ") And a<=maxasc ww=ww+fnt\width[a] ElseIf a=13 j=j+1 flines=flines+fnt\height[Asc("X")] ww=0 w=0 Exit End If If ww+fnt\width[a]=>width And w>0 Then txt = Left(txt,i-1) + Chr(13) + Right(txt,Len(txt)-i) ww=0 w=0 flines=flines+fnt\height[Asc("X")] j=i+1 End If Next i=j-1 w=ww Wend i=0 txt=Left(txt,Len(txt)-1)+Chr(13) If v_align Then y = y - flines/2 xx = x yy = y While Instr(txt,Chr(13),i+1)>0 If h_align For j=i+1 To Instr(txt,Chr(13),i+1)-1 a=Asc(Mid(txt,j,1)) If a=>Asc(" ") And a<=maxasc Then xx=xx-fnt\width[a]*.5 Next End If For j=i+1 To Instr(txt,Chr(13),i+1)-1 a=Asc(Mid(txt,j,1)) If a=>Asc(" ") And a<=maxasc DrawImageRect fnt\img,xx,yy,fnt\x[a],fnt\y[a],fnt\width[a],fnt\height[a] xx=xx+fnt\width[a] End If Next i=j yy=yy+fnt\height[Asc("X")] xx=x Wend Else If h_align For i=1 To Len(txt) a=Asc(Mid(txt,i,1)) If a=>Asc(" ") And a<=maxasc x=x-fnt\width[a]/2 End If Next End If If v_align y=y-flines/2 ; For i=1 To (Len(txt)>1) ; a=Asc(Mid(txt,i,1)) ; If a=>Asc(" ") And a<=122 ; y=y-fnt\height[a]/2*flines ; End If ; Next ;End If xx=x yy=y For i=1 To Len(txt) a=Asc(Mid(txt,i,1)) If a=13 xx=x yy=yy+fnt\height[Asc("X")] ElseIf a=>Asc(" ") And a<=maxasc DrawImageRect fnt\img,xx,yy,fnt\x[a],fnt\y[a],fnt\width[a],fnt\height[a] xx=xx+fnt\width[a] End If Next End If Return flines End Function @D2006: War ne prima idee, danke MfG MBC |
||
Computer sind auch nur Menschen! ![]() |
![]() |
KabelbinderSieger des WM-Contest 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, wenn man den Text immerhin auf den BackBuffer ausgeben kann, ist das doch auch schonmal viel wert.
Vielleicht könntest du mit dem Befehl GrabImage() arbeiten. Der kopiert einen Ausschnitt des Bildschrims des aktuellen Buffers in ein Bild. Schau am besten mal inder Onlinehilfe nach. |
||
<Wing Avenger Download> ◊◊◊ <Macrophage Download> |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group