Wie gelang ich zu ARGB ERLEDIGT

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Mathias-Kwiatkowski

Betreff: Wie gelang ich zu ARGB ERLEDIGT

BeitragDo, März 15, 2018 6:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe ein folgendes problem, RGB hab ich schon immer kapiert Very Happy aber bei ARGB hörrt es auf, brauchte ich ja auch so nie. nun möchte ich in einer pixmap ein roten punkt an der pos 10,10 setzen und benötige eine funktion die rgb zu argb umwandelt, da ich selbst in meinen versuchen kläglich gescheitert bin.

gibt es solch eine funktion? im internet bin ich auf sämtliches gestoßen auch ausserhalb blitzmax oder bb bereich aber verstanden habe ich es nicht wirklich, $FF usw keine ahnung andere haben bit zahlen benutzt oder so ähnlich. (wenn ich mich nich täusche)

gut wie dem sei ich stottere bei einer funktion die rgb zu argb umwandeln soll

wollte mir was erstellen z.b. GetARGB (R%,G%,B%) dann den argb wert returnen, aber ich weiß nichmal ob ich int float string returnen muss.

Code: [AUSKLAPPEN]

Local PixMap:TPixmap = CreatePixmap(800, 600, PF_RGB888)
WritePixel(pixmap, 10, 10, argb




ERLEDIGT!
ich habe nun was gefunden auf mojolabs.nz

wehm es interessiert
Code: [AUSKLAPPEN]
Function IntColor:Int(R:Int, G:Int, B:Int, A:Int = 0)
   Return A Shl 24 Or R Shl 16 Or G Shl 8 Or B Shl 0
End Function


IntColor:Int(R:Int, G:Int, B:Int, A:Int = 255)

A=255 = Transparent

Edit2!
Leider funktioniert es doch nicht richtig, man kann nur rot als farbe setzen
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Midimaster

BeitragDo, März 15, 2018 9:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab da vor Jahren mal was gemacht, womit Kinder Zeichnungen am Bildschirm "ausmalen" konnten. Dafür habe ich ARGB Manipulationen einer Pixmap gemacht.

Diese beiden Funktionen waren damals im Code:

BlitzMax: [AUSKLAPPEN]

Function GetFarbe%(Typ$,Wert%)
Local B%,G%,R%,C%
b= wert & 255
wert=wert/256
g=wert & 255
wert=wert/256
r=wert & 255
wert=Int(wert/256)
c= wert & 255
'Print "Farbe" + r + " " + G + " " + b + " " + c
Select Typ
Case "R"
Return r
Case "G"
Return g
Case "B"
Return b
Case "C"
Return c
End Select
End Function




Function MakeFarbe%(R%,G%,B%,A%=0)
Local Wert%

wert=a*256+r
wert=wert*256+g
wert=wert*256+b
Return Wert
End Function

Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Holzchopf

Meisterpacker

Betreff: Re: Wie gelang ich zu ARGB ERLEDIGT

BeitragDo, März 15, 2018 14:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Mathias-Kwiatkowski hat Folgendes geschrieben:
Edit2!
Leider funktioniert es doch nicht richtig, man kann nur rot als farbe setzen


Seltsam, der Code sieht eigentlich richtig aus Confused vielleicht liegt die Ursache woanders. Hast du evtl. ein SetColor(255,0,0) drin, bevor du das Bild dann zeichnest?
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Mathias-Kwiatkowski

BeitragDo, März 15, 2018 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, es ist bei mir in einer save roatation...

Code: [AUSKLAPPEN]
Function SaveTMap (data:string)
   Local Datei:String = String (data)
   
   Local PixMap:TPixmap = CreatePixmap(800, 600, PF_RGB888)
      
   Local MFile:TStream = WriteFile(Datei)
   For Local Y:Int = 0 To 599
      For Local X:Int = 0 To 799   
         MFile.WriteInt Map[X, Y]
         If Map[X, Y] = 1 Then
            WritePixel(pixmap, x, y, IntColor(128, 128, 128, 0))
         
         Else
            WritePixel(pixmap, x, y, IntColor(0, 0, 0, 0))
         EndIf
         MapErstellungspunkt = MapErstellungspunkt + 1
      Next
   Next
   SavePixmapPNG(PixMap, Replace(Datei, ".sgm", ".png"))

   WriteLine MFile, "Enemy"
   For Local E:TEnemy = EachIn TEnemy.SpownPoints
      WriteLine MFile, E.SpownEnemy
      WriteLine MFile, E.SpownMenge
      WriteLine MFile, E.SpownX
      WriteLine MFile, E.SpownY
   Next
   WriteLine MFile, "End"
   
   WriteLine MFile, "Mauer"
   For Local D:TDurchgang = EachIn TDurchgang.DropListe
      WriteLine MFile, d.PosX
      WriteLine MFile, d.Posy
      WriteLine MFile, d.Level
   Next
   WriteLine MFile, "End"

   CloseFile MFile
End Function
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Holzchopf

Meisterpacker

BeitragDo, März 15, 2018 16:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch's mal mit PF_RGBA8888 statt PF_RGB888, schliesslich verwendest du ja Alpha. Und dann auch IntColor(r, g, b, 255), denn a=0 heisst unsichtbar, a=255 wäre voll deckend.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Mathias-Kwiatkowski

BeitragDo, März 15, 2018 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
alles schwarz farbe 128,128,128,255 = schwarz .... also funktioniert leider nicht
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Holzchopf

Meisterpacker

BeitragFr, März 16, 2018 1:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Au, sorry Embarassed

Es muss heissen BlitzMax: [AUSKLAPPEN]
Return A Shl 24 | R Shl 16 | G Shl 8 | B


Or ist das logische Oder, nicht das bitweise.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Mathias-Kwiatkowski

BeitragFr, März 16, 2018 5:40
Antworten mit Zitat
Benutzer-Profile anzeigen
jo nun rennt es mit PF_RGB888 wunderbar sogar, danke
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group