Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Hilfedatei-Fehler (CHM-Ausgabe)
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 09.11.2006, 22:28    Titel: Antworten mit Zitat

Hi,
ich habe die Beschreibung von LBound und UBound mal der Realität angepaßt..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 12.11.2006, 18:06    Titel: Antworten mit Zitat

Hi Leute!

Neues Release:
http://stefan.freebasic.de/DATA/FBRD_06-11-12.chm

Besonders möchte ich auf die Seite "FB-Dialekte" verweisen, die unter Startseite=>Verschiedene Themen=>FB-Dialekte einsehbar ist; darin sind die wichtigsten Änderungen seit v0.17 beschrieben.

ansonsten seht euch mal den Changelog an
http://stefan.freebasic.de/HTML/DL_Ref.HTML

Es fehlt natürlich immer noch eine Menge, aber immerhin bin ich wieder am Ball.

@ytwinky:
Danke für die Files, aber wo genau ist der Fehler an den bisherigen Beschreibungen? Der einzige Unterschied deiner Files ist, dass bei dir keine Hinweise darauf gegeben werden, was FB zurückgibt, wenn eine ungültige Dimensionsnummer angegeben wird.
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 12.11.2006, 18:34    Titel: Antworten mit Zitat

Hi Dusky_Joe,
..ebend happy zwinkern grinsen
probiers aus, genau das ist der Unterschied:
z.B. UBound() liefert nicht mehr -1 zurück, deshalb dachte ich, es sollte auch in den Beschreibungen gestrichen werden,
weil diese an sich nützliche Funktion nicht mehr geht..
..oder habe ich es nur falsch gemacht? Glaub ich nicht..
[Edit]
Ein Bild sagt mehr als 1000 Worte:

..und damit es nicht heißt, mit LBound geht das ja auch nicht:

Dusky_Joe hat Folgendes geschrieben:
Besonders möchte ich auf die Seite "FB-Dialekte" verweisen, die unter Startseite=>Verschiedene Themen=>FB-Dialekte einsehbar ist; darin sind die wichtigsten Änderungen seit v0.17 beschrieben.
..dieser Hinweis ist gut..
..denn in der wunderhübschen neuen Tabelle Option-Beschreibung sticht gleich der Schreibfehler ins Auge:
'depracted' soll vermutlich 'deprecated' heißen grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 17.11.2006, 16:56    Titel: Antworten mit Zitat

Wert mir das mal ansehen mit dem -lang-Param. Ist direkt so aus der en. File abgetippselt, zum Ausprobieren bin ich noch nicht gekommen.

Hab dank für den Shot, ich werde auch da nochmal nachharken.
Zurzeit hab ich mir meine Wochenend-Planung ja so eingerichtet, dass immerhin ein Tag für die lieber "Coder-Verwandschaft" bleibt happy


Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 17.11.2006, 23:56    Titel: Antworten mit Zitat

Dusky_Joe hat Folgendes geschrieben:
ich werde auch da nochmal nachharken
..genau, zeig denen mal, was 'ne Harke ist lachen
Aber nun zu einem anderen Punkt: Circle
Das englische Wiki hat Folgendes geschrieben:
'f' is the fill flag. If you specify this flag, the circle/ellipse will be filled with the selected color. This has no effect if you're drawing an arc.
'f' ist das 'Füllen'-Flag. Wird dieses Flag benutzt, wird der Kreis/die Ellipse mit der gewählten Farbe gefüllt. Dies hat jedoch keinen Effekt, wenn ein Bogen gezeichnet wird.
In anderen Worten: Mit Circle.. können keine Kuchen-Diagramme erstellt werden.
Ich finde diesen Hinweis ganz schön wichtig, zumal es mich 'ne halbe Stunde gekostet hat, das 'rauszufinden' grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.11.2006, 00:00    Titel: Antworten mit Zitat

...und jetzt kommt in spätestens in einer woche ein neues Y-Programm: "Kuchendiagramme in FB"!

Richtig? durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 18.11.2006, 00:35    Titel: Antworten mit Zitat

Keine schlechte Idee grinsen
..aber ich spiele noch mit Voltas Berlin-Uhr 'rum..
..da gibts dies Wochenende wahrscheinlich 'ne neue 'Y-Version' happy
Das ist nämlich keine schlechte Spielwiese für den Line- und Circle-Befehl.
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 19.11.2006, 00:02    Titel: Antworten mit Zitat

Circle: Notiert.

Kuchendiagramm:
Ich hoffe doch aber, dass die Sub dann nicht einfach nur die Enden des Bogens über LINE mit dem Zentrum verbindet, und dann per PAINT den Kuchen füllt happy
Nein, ernsthaft, das wäre keine gute Methode, dabei 'vergisst' FB nur zu gerne ein paar Pixel, nämlich die, die recht nahe am Zentrum liegen.

Anyway, Syntax könnte so aussehen:
Code:
SUB Cookie (centerX AINT, centerY AINT, percent AINT, movepercent AINT, color AINT, filled AINT= 1)

(AINT steht für AS INTEGER, ich hab mir ein entsprechendes Define geschrieben, und bin seither recht schreibfaul happy)
movepercent dreht das kuchenstück dann um eine entsprechende Gradzahl.

Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 20.11.2006, 11:14    Titel: Antworten mit Zitat

Hi,
kein Fehler in der FBHelp, eine Änderung in fbgfx:
Der Header des fbgfx - Image hat sich in FB0.17 geändert.
Erstmal ändert sich nichts für den der nicht über Pointer direkt im Image arbeiten möchte.
Man kann weiter mit dem gleichen Quelltext Imagecreate, put, get usw. arbeiten.
Auch gespeicherte Images mit altem Header werden in FB0.17 erkannt und richtig dargestellt.

Der neue Header hat 32 Byte statt 4 Byte wie bisher. Die ersten 4 Byte sind mit dem alten Header kompatibel.
Darin waren ja in 2 Short Werten Breite (mit bytes-per-pixel) und Höhe des Image codiert.
Die niederwertigsten 3 Bits als bpp Wert konnten 1,2 oder 4 sein (&B001, &B010 oder &B100).
Diese drei Bits auf &B111 (dez. 7) gesetzt, die restlichen Bits auf 0, kennzeichnen den neuen Header.

Code:
Type Image_Header_neu
 old_Hd As UInteger ' =7 dann neuer Header
 bpp    As  Integer ' bytes-per-pixel
 width  As UInteger  'Breite des Image
 height As UInteger  'Höhe des Image
 pitch  As UInteger  'Anzahl Byte pro Zeile
 GLuint AS String*12 'vermutlich openGL Infos, noch unklar?
End Type


Werden Bildpunkte im Image über den Pointer manipuliert muss der neue Headeroffset berücksichtigt werden.
Das Beispiel zeigt wie man den neuen Headeroffset ermittelt und kann mit FB0.15, FB0.16 oder FB 0.17 compiliert werden.
Code:
Dim As Integer breit, hoch ,j, i, hoffs
Dim As Integer Ptr img

Screen 18,32 'Bit per Pixel = 32
breit = 52   'Bildbreite und
hoch = 86    'Bildhöhe sind bekannt

img = ImageCreate (breit, hoch) 'Image bilden
BLoad "bruno.bmp",img           'BMP-Datei in das Image laden
Put (100, 20), img,PSet         'Image anzeigen
hoffs = 1                       'alter Header 1 (*4 Byte) Offset
if img[0]=7 then hoffs = 8      'neuer Header 8 (*4 Byte) Offset

'180° Kopfstand
j = hoch * breit                'Anzahl der Pixel
For i = 1 To j\2                'Schleife zum tauschen
  Swap img[j-i+hoffs], img[i]   'der Pixel von außen
Next                            'nach innen
Put (100, 110), img,PSet        'Kopfstand anzeigen
Print "Kopfstand machen ..."
Sleep
ImageDestroy img
End

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.11.2006, 23:04    Titel: Antworten mit Zitat

Hi,
auch kein Fehler in der Chm-Datei..
Die Beschreibung des IIF-Befehls in der englischen Hilfe und auch im englischen Wiki unterscheidet sich ein wenig von der deutschen Version.
Deshalb habe ich mal einen Vorschlag erstellt zwinkern
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 22.11.2006, 23:18    Titel: Antworten mit Zitat

Achtung:
Wenn man mit -lang deprecated/qb compiliert, dann wird der alte Image header genommen(stand irgendwo im englischem Forum).
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 23.11.2006, 10:33    Titel: Antworten mit Zitat

Hi,
ja, der alte Header wird auch bei bpp=1 also bei den Palettenfarben etc. weiter benutzt. Also bei allen QB kompatiblen Versionen.
Welcher Headeroffset benutzt wird sollte man ab FB0.17 besser selbst nachprüfen.
So die elegante Methode (nach ytwinky grinsen )
Code:
...
headeroffset = IIF(img[0]=7, 8 ,1)   'neuer Header 8 ,alter Header 1(bei Integer Pointer)
...
...
headeroffset = IIF(img[0]=7, 32 ,4)  'neuer Header 32 ,alter Header 4(bei Byte Pointer)
...

EDIT/ oder
Code:
...
headeroffset = IIF(img[0]=7, 32 ,4) \ Sizeof(img[0])
...

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 09.12.2006, 22:03    Titel: Antworten mit Zitat

Screen:

Jeweils beim Rahmen- und beim Splashscreen-Flag steht: "Rahmenflag kann nicht... kombiniert werden"
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 20.12.2006, 18:06    Titel: Antworten mit Zitat

Escape (option escape):
erste zeile ("G") muss weg.

die unterschiede zu q- und freebasic sind 2x aufgelistet.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 26.12.2006, 17:10    Titel: Antworten mit Zitat

Frohes Fest!

Während sich andere die Festtage mit Entenbraten, Plätzchen und elektronischem Spielzeug von Fernost vertreiben, habe ich meine
Versäumnisse der letzten Zeit aufgeholt: Es gibt mal wieder eine neue Version.
Zu Properties u. dgl. bin ich leider noch nicht gekommen, aber immerhin existiert - quasi als Trost - ja schon mal ytwinky's und MD's
Übersetzung von yetifoots Tutorial, sowie das Skriptum "Objektverarbeitende Progammierung mit Freebasic".

Dank dieser beiden Dokumente bin ich inzwischen guter Dinge, die entsprechenden Referenz-Einträge bald nachliefern zu können,
möglicherweise noch in diesem Jahr (aber ich will hier nicht zu viel versprechen...)

Anyway, ich habe auch schon mit dem Gedanken gespielt, diese Tutorials evtl. in die Referenz einzuarbeiten; da es sich bei der OOP um
ein recht umfangreiches Thema handelt, wäre es für neue User sicher gut, gleich ein Dokument vor sich zu haben, das alles in einem
Rutsch erklärt; sich die Informationen aus einzelnen Stichwörtern zusammen zu suchen kann etwas mühsam sein...
now, let's see.

Jedenfalls, hier könnt ihr euch den Festtagsbraten abholen:
http://stefan.freebasic.de/HTML/DL_Ref.HTML

Ein paar Besondere Hinweise:
- Wenn ich schon nicht die Bedeutsamste Neuerungen - die OOP in FB - dokumentieren konnte, so doch wenigstens die Änderungen, die sich
im Bereich OPTION ergeben haben. Siehe OPTION sowie alle relevanten Themen dazu.
- Auch im Bereich Bildpuffer hat sich etwas getan: "Die GfxLib=>Interne Pixelformate=>Bildpuffer" wurde komplett überarbeitet. Ich bitte hier um
besonders ausführliches Feedback bezüglich Verständlichkeit.
- Der Aufmerksame Leser wird feststellen, dass sich in 'Interne
Pixelformate' auch eine Überschrift "Alpha-Wert" befindet, unter der
jedoch nur die Notitz "Work in Progress" zu finden ist.
Tatsächlich ist weniger in Progress, als mir lieb wäre. Gedacht hatte ich,
an dieser Stelle eine Art Function zu Präsentieren, wie wir sie von
CUSTOM gewöhnt sind; den Code eben, mit dem freeBASIC das ALPHA-
Blending erledigt.
Hat irgendjemand sachdienliche Hinweise (hmm... klingt das polizeilich...)


Frohes Fest!


Have a nice day
Ciao



Anmerkung:
Dieses Posting ist während des Uploads enstanden - Leser, die sehr kurz nach entstehen dieses Postings versuchen, die angegebene Datei aufzurufen, werden mglw. feststellen, dass dort noch keine neue Datei ist. In diesem Fall bitte ich um ein wenig geduld...
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 26.12.2006, 21:16    Titel: Antworten mit Zitat

Alpha blending...
Hab mir in den letzten 2 Tagen(nein, ich hab nicht so lange gebraucht, hatte wenig zeit grinsen) genau so eine funktion gemacht, jedoch ein wenig ausführlicher:

Code:
Sub putt(xp As Integer, yp As Integer, xs As Single, ys As Single, src As Any Ptr, dest As Any Ptr = Screenptr, antia As Integer =0)
    Dim AS UInteger max, breite, hoehe, cd, breited, hoehed, xt, yt
    Dim As Ubyte calpha, rot, gruen, blau
    Dim As Ubyte ptr cols, cold
   
    breite  = cast(uinteger Ptr, src)[2]
    hoehe = cast(uinteger Ptr, src)[3]
   
    If dest=Screenptr Then
        Screeninfo breited, hoehed
        print #1, breited, hoehed
    Else
        breited  = cast(uinteger Ptr, dest)[2]
        hoehed = cast(uinteger Ptr, dest)[3]
        cast(ubyte ptr, dest) += 32
    End IF
   
    cast(ubyte ptr, src) += 32
   
    Dim As UInteger rt, gt, bt, at, counter
    Dim AS Ubyte ptr colt
   
    For x As Single = 0 to breite-1 step 1/xs
        For y As Single = 0 to hoehe -1 step 1/ys
            'If Int(x+0.5) Mod 12 = 0 Then x += 1/xs/2
            'If Int(y+0.5) Mod 8 = 0 Then y += 1/xs/2
            'If Int(x+0.5-4) Mod 8 = 0 Then x -= 1/xs/2
            'If Int(y+0.5-4) Mod 8 = 0 Then y -= 1/xs/2
            If (x*xs+xp)<0 Or (y*ys+yp)<0 Or (x*xs+xp)>breited-1 Or (y*ys+yp)>hoehed-1 Then Continue For
            ''(Int(x*xs+0.5+xp)+Int(y*ys+0.5+yp)*breited
           
            cols = @cast(ubyte ptr, src)[(Int(x+0.5)+Int(y+0.5)*breite)*4]
            cold = @cast(ubyte ptr, dest)[(Int(x*xs+0.5+xp)+Int(y*ys+0.5+yp)*breited)*4]
            calpha = cols[3]
           
            If antia=1 Then
                counter=0
                rt=0
                gt=0
                bt=0
                at=0
               
                For x1 As Single = x - 1/xs/2 to x + 1/xs/2 Step 1
                    For y1 As Single = y - 1/ys/2 to y + 1/ys/2 Step 1
                        If x1<0 Or y1<0 Or x1>breite-1 Or y1>hoehe-1 Then
                            continue for
                            xt=x+(x-x1)
                            yt=y+(y-y1)
                        Else
                            xt=x1
                            yt=y1
                        End If
                        counter+=1
                        colt = @cast(ubyte ptr, src)[(Int(x1)+Int(y1)*breite)*4]
                        rt += colt[r]
                        gt += colt[g]
                        bt += colt[b_]
                        at += colt[3]
                    Next y1
                Next x1
                rt+=cols[r]*1
                gt+=cols[g]*1
                bt+=cols[b_]*1
                at+=cols[3]*1
                counter+=1
               
                'print #1,at/counter
                calpha=at/counter
                rot = (rt/counter*calpha+cold[r]*(255-calpha))/255
                gruen = (gt/counter*calpha+cold[g]*(255-calpha))/255
                blau = (bt/counter*calpha+cold[b_]*(255-calpha))/255
            Else
                'hier beginnt der alpha teil
                rot = (cols[r]*calpha+cold[r]*(255-calpha))/255
                gruen = (cols[g]*calpha+cold[g]*(255-calpha))/255
                blau = (cols[b_]*calpha+cold[b_]*(255-calpha))/255   
                'und hier endet er
            End If
           
            cast(Uinteger ptr, dest)[(Int(x*xs+0.5+xp)+Int(y*ys+0.5+yp)*breited)] = RGB(rot, gruen, blau)
            'If dest=screenptr Then
            '    pset0 (Int(x*xs+0.5)+xp,Int(y*ys+0.5)+yp), RGB(rot, gruen, blau)
            'Else
            '    pset dest,(Int(x*xs+0.5)+xp,Int(y*ys+0.5)+yp), RGB(rot, gruen, blau)
            'End If
        Next y
    Next x
End Sub


Cols und cold steht für color_source und color_destination, also die Farbwerte(jeweils R, G, B getrennt!).
Bitte nicht auf sauberkeit, etc achten, hatte eigentlich nie vor das zu veröffentlichen grinsen
Wenn ich gleich Lust und Zeit habe, dann pack ich das in eine Custom Funktion, wie das ursprünglich mal war, das habe ich allerdings nicht gespeichert...
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 27.12.2006, 00:22    Titel: Antworten mit Zitat

Code:
Function custom_blend(Byval src As Uinteger, Byval dest As Uinteger, Byval param As Any Ptr ) As Uinteger
    Dim As Uinteger pixel
    Dim As Ubyte ptr color_src, color_dest
    Dim As Ubyte red, green, blue, alpha
   
    color_src = Cast(Ubyte ptr, @src)
    color_dest = Cast(Ubyte ptr, @dest)
   
    If param <> 0 Then
        alpha = *Cast(Ubyte ptr, param)
        'ein alpha wert für alle pixel
    Else
        alpha = color_src[3]
        'aus jedem Pixel den alpha wert lesen
    End If
   
    red   = (color_src[2]*alpha + color_dest[2]*(255-alpha)) / 255
    green = (color_src[1]*alpha + color_dest[1]*(255-alpha)) / 255
    blue  = (color_src[0]*alpha + color_dest[0]*(255-alpha)) / 255
   
    pixel = RGBA(red, green, blue, 255)
   
    Return pixel   
End Function

Screenres 230, 100, 32

Color &Hffffff, &Hffffff
Cls

Dim As Any Ptr bild
Dim As Ubyte alpha_wert = 100

bild = Imagecreate(100, 100, RGBA(255, 0, 0, 255))

Circle bild, (50, 50), 10, RGBA(0, 255, 0, 150)
Line bild, (50, 0)-(50, 99), RGBA(0, 0, 255, 255)
Line bild, (0, 50)-(99, 50), RGBA(0, 0, 255, 0)

Put (10,0), bild, custom, @custom_blend, 0
Put (120,0), bild, custom, @custom_blend, @alpha_wert

Sleep


Das Beispiel ist nur nicht so gut, weiß nicht, was man da nehmen könnte happy


(doppelpost nur aus dem Grund, da es sonst zu unübersichtlich wird bei so viel code)
_________________
Code:
#include "signatur.bi"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 01.01.2007, 15:51    Titel: Antworten mit Zitat

@Programmierer!

Danke für die schnelle Antwort!
Ich hab noch schnell einen kleinen Vergleich angelegt, also deine CUSTOM-Func mit FB-ALPHA verglichen. In einigen Fällen ergeben sich zwar minimale Diskrepanzen zw. ALPHA und CUSTOM, die bleiben dann aber tatsächlich bei 1, also CUSTOM erzeugt r = &HD3 und ALPHA gibt r = &HD2 aus.
Anyway, was man tatsächlich SIEHT ist in jedem Fall das selbe, und reinstellen wollte ich die Func ja nur, um die Technik zu erklären, mit der das Blending funktioniert; das ist dir exzellent gelungen.

Viel Spaß weiterhin!


@ all Others:
Habe es im letzten Jahr leider nicht mehr geschafft, das Ref-Update fertig zu bringen, allerdings sind immerhin die Einträge PROPERTY, OPERATOR und THIS fertig. CONSTRUCTOR (Klassen) und DESTRUCTOR (Klassen) sind in arbeit, die entsprechenden _toren-Einträge für Module sind überarbeitet.
Release im Laufe der Woche

Have a nice day
Ciao

PS Happy new year
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 04.01.2007, 01:21    Titel: Antworten mit Zitat

Hi Leute!

...und wieder eine neue Version.
Unter der altbekannten Adresse
http://stefan.freebasic.de/HTML/DL_Ref.HTML
kann jetzt die Januar-Version der Referenz geladen werden.

Wer den Changelog überfliegt, dem mag er relativ kurz vorkommen, täuscht aber, da die Referenz (wie fast jedes mal) um ca. 30KB (CHM-Version) gewachsen ist.
Diesmal waren vor allem PROPERTY, OPERATOR, CONSTRUCTOR/DESTRUCTOR, THIS und PUBLIC/PRIVATE Hauptarbeitsgebiete.

Auf ein ergiebiges neues Jahr, und viel Spaß euch am Programmieren!


Have a nice day
Ciao
Dusky_Joe
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 05.01.2007, 22:05    Titel: Antworten mit Zitat

Hi Dusky_Joe,
bin gerade am Downloaden und möchte nur sagen:
Das neue Jahr fängt ja gut an.
Saubere Arbeit, weiter so..
..ohne die Befehlsreferenz könnten viele Fragen nämlich nicht so einfach beantwortet werden zwinkern
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8  Weiter
Seite 6 von 8

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz