Antialias bei Bilder
Übersicht

![]() |
soliBetreff: Antialias bei Bilder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bräuchte eine Lösung oder Idee für BB2
Code: [AUSKLAPPEN] Graphics 500,200,16,2 kugel=LoadImage("d:/eigene dateien/blitz/"+"Krot.bmp") MaskImage kugel,192,192,192 While Not KeyHit(1) Cls Color 0,0,0 Rect 0,0,100,200,1 Color 000,200,0 Rect 100,0,100,200,1 Color 200,0,0 Rect 200,0,100,200,1 Color 0,0,200 Rect 300,0,100,200,1 Color 255,255,255 Rect 400,0,100,200,1 For x=0 To 4 DrawImage kugel,30+x*100,50 Next Flip Wend ![]() Ich hätte gerne das die Kugel nicht so angefressen aussieht. Vor allen Dingen soll das auch auf wechselnden bunten Hintergrundgraphiken funktionieren Kann jemand helfen? soli |
||
solitaire |
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
tja... dazu must du dann "Alpha-Pixel malen"
und zwar machst du so eine Tabelle mit x,y-koordinate, alphawert und farbe. Diese Pixel malst du dann in den Umriss der Kugel rein - das geht am schnellsten - erfordert aber etwas Arbeit für so eine Tabelle... |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du schon eine Bilddatei nimmst, dann würde ich die Kugel mit einem Grafikprogramm a la Photopaint neu malen. Wozu ein fehlerhaftes Bild nehmen und mit jedem Schleifendurchgang die Fehler rechnerisch ausbessern. ![]() erstelle doch ein kleines 3D-Programm mit einer solchen Kugel und mache dann einen Screenshot oder so... |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber die unschönen Ränder ausbessern kann er nicht mit nem Grafikprogramm. BB2D benutzt ja keine Alphachannels ![]() ![]() ![]() |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schreib einen Brief an Microsoft - die sollen DX nachbessern... Dann klappts auch mit BB ![]() |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
zumindest aus PNG-Dateien wird der Alphachannel mit geladen. Kann man aber nur mit ReadPixel nutzen.
ansonsten hier mal ein neues Bild ohne störende Ränder ![]() habe es in der doppelten Auflösung gerendert und mit folgendem Code verkleinert(Antialiasing ohne Berücksichtigung der Maskcolor): Code: [AUSKLAPPEN] Graphics 600,300,32,2 Const c_mx = 3 skip = 4 ; maskcolor = $FF00FF ; maskcolor = $F800F8 ;Grafikkartenbug? maskcolor = $000000 Dim Col(c_mx) file$ = CommandLine$() If Not FileType (file$) Then file$ = Input$("Datei: ") Else Print "Verarbeite Datei: " + file$ EndIf start = LoadImage(file$) If Not start Then RuntimeError "Datei nicht gefunden!" ausgabe = CreateImage(ImageWidth(start)/2,ImageHeight(start)/2) If Not ausgabe Then RuntimeError "Fehler!" skip = Input("Skipwert(0-3): ") LockBuffer ImageBuffer(start) LockBuffer ImageBuffer(ausgabe) For x = 0 To ImageWidth(ausgabe)-1 For y = 0 To ImageHeight(ausgabe)-1 hx = x Shl 1 hy = y Shl 1 maskcnt = 0 For u = 0 To c_mx Col(u) = ReadPixelFast(hx+(u Shr 1),hy+(u And 1),ImageBuffer(start)) And $FFFFFF;kein Alphakanal If col(u) = maskcolor Then maskcnt = maskcnt + 1 Next If maskcnt > skip Then WritePixelFast x, y, maskcolor, ImageBuffer(ausgabe) Else writecol = 0 For u = 0 To c_mx If Col(u) <> Maskcolor Select maskcnt Case 0 writecol = writecol + ((Col(u) And $FCFCFC) Shr 2) Case 1 writecol = writecol + (((Col(u) Shr 16) And $FF) / 3) Shl 16 ;R writecol = writecol + (((Col(u) Shr 8) And $FF) / 3) Shl 8 ;G writecol = writecol + (Col(u) And $FF) / 3 ;B Case 2 writecol = writecol + ((Col(u) And $FEFEFE) Shr 1) Case 3 writecol = Col(u) End Select EndIf Next WritePixelFast x, y, writecol, ImageBuffer(ausgabe) EndIf Next Next UnlockBuffer ImageBuffer(start) UnlockBuffer ImageBuffer(ausgabe) datei$ = Left (File$,Instr (File$,".")-1) + "_A.bmp" SaveImage (ausgabe, datei$) Print datei$ + " erzeugt!" FreeImage start FreeImage ausgabe WaitKey() |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Lädt BB den Alphachannel von PNG - Dateien wirklich mit? Tut es bei mir nicht, ich hatte das schon ausprobiert ![]() |
||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
@BigBug
Ich glaube dein Programm, entfernt das Antialias aus dem bestehenden Bild. Jetzt sind die Farben am Rand weg, dafür aber die Kugel immer noch eckig. Muss es mir aber während der Woche nochmal genauer ansehen. Ich bräuchte etwas das die Übergänge zum Hintergrundbild sanfter berechnet. Das mit Alpha Kanal verstehe ich jetzt nicht ganz. Ich hab mir zwar schon überlegt, die Ränder auf 50% Transparenz zum Hintergrund zu verrechnen, bin mir aber nicht sicher, ob sich die Mühe lohnt. Hab mal im Projekte Forum das Spiel dazu vorgestellt. https://www.blitzforum.de/view...5939#15939 |
||
solitaire |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group