Français
Source/ Codesnippets

Bmp Dossier Farbtiefe magasin

 

Andreas
Gaida
Hi!
ici un kleines Beispiel comment on une BMP Dossier avec 24Bit et 8Bit Farbtiefe(unkomprimiert)
selber Ladet et Anzeigt sans qui Profan eigenen BMP Routinen.
KompilierenMarqueSéparation
Declare datei_load$,bits_per_pixel&,pixels_width&,pixels_height&,compresion_image&,offset_image&,pixels_width_rest&
Declare Temp1&,Temp2&,color_bmp&[257,4],temp_R&,temp_G&,temp_B&
cls
datei_load$ = LoadFile$(ÖFFNE,BMP|*.bmp;*.bmp|Batch|*.bmp)
sleep 50
cls
Assign #1, datei_load$
OpenRW #1
print @GetChar$(#1,2)               2   BM ID
print @GetLong(#1)                  6   Länge
print @GetWord(#1)                  8   0
print @GetWord(#1)                  10  0
offset_image& = @GetLong(#1)        14  Offset off Data
print offset_image&
print @GetLong(#1)                  18    Grösse des Headers
pixels_width&  = @GetLong(#1)       22  bitmap width in pixels
print pixels_width&
pixels_height& = @GetLong(#1)       26  bitmap height in pixels
print pixels_height&
print @GetWord(#1)                  28  number of color planes being used
bits_per_pixel& = @GetWord(#1)      30  number of bits per pixel
print Bit p Pixel : ;bits_per_pixel&
compresion_image& = @GetLong(#1)    34  compression method being used
print compresion_image&                 0 BI_RGB none Most common
print @GetLong(#1)                  38  This is the size of the raw bitmap data
print @GetLong(#1)                  42  horizontal resolution of the image. (pixel per meter)
print @GetLong(#1)                  46  vertical resolution of the image. (pixel per meter)
print @GetLong(#1)                  50  number of colors used
print @GetLong(#1)                  54  number of important colors used

if (@Int((pixels_width&/4))-(pixels_width&/4)) <> 0

    pixels_width_rest& = ((@Int(pixels_width&/4)+1)*4) - pixels_width&

endif

if      (bits_per_pixel& = 24) and (compresion_image& = 0) and (offset_image& = 54)

    WhileLoop pixels_height&

        Temp1& = &loop

        WhileLoop pixels_width&

            temp_R& = @GetByte(#1)
            temp_G& = @GetByte(#1)
            temp_B& = @GetByte(#1)
            SetPixel &loop,((pixels_height&+1) - Temp1&),@RGB(temp_B&,temp_G&,temp_R&)
            SetPixel &loop,((pixels_height&+1) - Temp1&),@RGB(@GetByte(#1),@GetByte(#1),@GetByte(#1))

        EndWhile

        if       pixels_width_rest& = 1

            @GetByte(#1)
            @GetByte(#1)
            @GetByte(#1)

        elseif   pixels_width_rest& = 2

            @GetByte(#1)
            @GetByte(#1)

        elseif   pixels_width_rest& = 3

            @GetByte(#1)

        Endif

    EndWhile

elseif (bits_per_pixel& = 8) and (compresion_image& = 0) and (offset_image& = 54)

    WhileLoop 256

        color_bmp&[&loop,3] = @GetByte(#1)@Ord(GetChar$(#1,1))
        color_bmp&[&loop,2] = @GetByte(#1)@Ord(GetChar$(#1,1))
        color_bmp&[&loop,1] = @GetByte(#1)@Ord(GetChar$(#1,1))
        color_bmp&[&loop,4] = @GetByte(#1)@Ord(GetChar$(#1,1))

    EndWhile

    WhileLoop pixels_height&

        Temp1& = &loop

        WhileLoop pixels_width&

            Temp2& = (@GetByte(#1)+1)(@Ord(GetChar$(#1,1)) +1)
            SetPixel &loop,(pixels_height&+1) - Temp1&,@RGB(color_bmp&[Temp2&,1],color_bmp&[Temp2&,2],color_bmp&[Temp2&,3])

        EndWhile

        if       pixels_width_rest& = 1

            @GetByte(#1)

        elseif   pixels_width_rest& = 2

            @GetByte(#1)
            @GetByte(#1)

        elseif   pixels_width_rest& = 3

            @GetByte(#1)
            @GetByte(#1)
            @GetByte(#1)

        Endif

    EndWhile

else

    Print Das Bild ist in einen nicht unterstützten Format

Endif

waitinput
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
14.08.2007  
 



qui Code ist très optimier- et beschleunigbar, mais il scheint marcher et zeigt très joli comment simple BMP aufgebaut son peux. es am OGL-Rumprobieren pour BUMP- et AlphaChannel quoi? Magst etwa mon .tex-Format pas?
 
14.08.2007  
 




Andreas
Gaida
Um honnête trop son peigne je encore pas en supplément Votre Quellcodes mir richtig anzusehen. là vous aussi quelque chose umfamgreicher sommes et je mich mommentan déjà depuis mehreren Tagen sur Nachschicht rumtreibe habe je mir erstmal quelque chose leichtere Nourriture vorgenommen . Dein .tex Format ist déjà o.k , pour Jeux Programmation sowieso avec cela pas chacun une sans probleme qui
Texturen verändern peux .

MfG
Andreas
 
Athlon X2 4800 , 2GB Ram , GeForce 7800GT
Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b
15.08.2007  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.284 Views

Untitledvor 0 min.
Sven Bader23.10.2021
Uwe ''Pascal'' Niemeier01.04.2014

Themeninformationen

cet Thema hat 2 participant:

Andreas Gaida (2x)
iF (1x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie