Images en quadrichrome sur vg5000
Modérateurs : Papy.G, fneck, Carl
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
excusez moi de mon français tout pourri je cherche désespérément à lire le contenu d'un fichier bmp mais la combinaison des couleurs est vraiment pas évidente. Je pensais qu'ils étaient bêtement sur 4 octets " alpha,r,v,b ". voici l'image " bmp " à décoder si quelqu'un veut bien. image 9x15pixels.
Je ne suis qu'un utilisateur pas un pro
Re: Images en quadrichrome sur vg5000
Le fichier que tu as inséré est au format PNG. Il n'est pas facile de retrouver les couleurs dans un format compressé.
J'ai pris la même image et je l'ai sauvée en bmp 24 bits par pixel, c'est beaucoup plus facile à comprendre :
La description du format BMP est ici : https://en.wikipedia.org/wiki/BMP_file_format
J'ai pris la même image et je l'ai sauvée en bmp 24 bits par pixel, c'est beaucoup plus facile à comprendre :
La description du format BMP est ici : https://en.wikipedia.org/wiki/BMP_file_format
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Images en quadrichrome sur vg5000
Perso voici ce que je pense :
Tu as une variable longue sous la forme RVB : Rouge(0-FF)Vert(0-FF)Bleue(0-FF)
Suppose que cette variable longue du pixel xa ya soit dans Couleur_finale (xa, ya)
(Obtenue par GetPixel (xa,ya))
En décimal tu fais :
Mais SAM et Daniel l'avaient déjà dit -
De plus Il fallait prendre un fichier BMP comme on te l'avait proposé depuis le 1 décembre.
Tu as une variable longue sous la forme RVB : Rouge(0-FF)Vert(0-FF)Bleue(0-FF)
Suppose que cette variable longue du pixel xa ya soit dans Couleur_finale (xa, ya)
(Obtenue par GetPixel (xa,ya))
En décimal tu fais :
Code : Tout sélectionner
Rouge = ((Couleur_Finale(xa, ya) And 16711680)) / 256 / 256 // (16711680 = $FF0000)
Verte = ((Couleur_Finale(xa, ya) And 65280)) / 256 // 65280 = $00FF00
Bleue = (Couleur_Finale(xa, ya) And 255) // 255 = $FF
De plus Il fallait prendre un fichier BMP comme on te l'avait proposé depuis le 1 décembre.
Re: Images en quadrichrome sur vg5000
Exemple :
- Dans le fichier .bmp que j'ai listé, l'image commence à l'octet 0x36.
- L'image est codée à partir du début de la dernière ligne, les lignes sont triées de la dernière vers la première.
La dernière ligne de l'image est définie par :
0036: FFFFFF FFFFFF FFFFFF = trois pixels blancs
003F: 0000FF 0000FF 0000FF = trois pixels bleus
0048: FF0000 FF0000 FF0000 = trois pixels rouges
La même séquence est répétée pour les quatorze lignes précédentes.
- Dans le fichier .bmp que j'ai listé, l'image commence à l'octet 0x36.
- L'image est codée à partir du début de la dernière ligne, les lignes sont triées de la dernière vers la première.
La dernière ligne de l'image est définie par :
0036: FFFFFF FFFFFF FFFFFF = trois pixels blancs
003F: 0000FF 0000FF 0000FF = trois pixels bleus
0048: FF0000 FF0000 FF0000 = trois pixels rouges
La même séquence est répétée pour les quatorze lignes précédentes.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: Images en quadrichrome sur vg5000
En éditant l'image avec un programme comme le Photofiltre on retrouve bien les Vert Rouge Bleu
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
voici mon code.Si vous avez des suggestions pour me mettre sur la bonne voie je suis tout ouî.
Voilou ce qu'il me sort
Code : Tout sélectionner
file$=RequestFile$("choose a wav file","bmp",False)
Graphics 800,600,32,2
Dim num(100000)
fil=ReadFile(file$)
For i=1 To 2500
num(i)=ReadInt(fil)
Next
CloseFile(dataout)
For i=36 To 600 Step 1: v=v+1
y=num(i)
Line 0,250,0,0
Color 255,255,255
red= Int y /(256*256*256) Mod 256
green= Int y /(256*256) Mod 256
bleu= Int y/256 Mod 256
If bleu=-1 Then bleu=255
If green=-1 Then green=255
If red=-1 Then red=255
Text x,u,"alpha"+Str$(y)
Text x+160,u," red"+ red:
Text x+240,u,"green"+ green
Text x+320,u,"bleu"+ bleu
Text x+400,u,"$"+ Hex$ (y)
Text x+500,u,"?"+v
u=u+10
If u>600 Then u=0:Delay 100000:End
Flip
Next
Delay 10000
Voilou ce qu'il me sort
- Pièces jointes
-
- Capture d’écran de 2020-12-04 14-22-41.png (303.51 Kio) Consulté 4047 fois
Je ne suis qu'un utilisateur pas un pro
Re: Images en quadrichrome sur vg5000
La difficulté est de comprendre ce que tu veux obtenir, à partir de quoi, avec quels outils.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
Daniel, je souhaiterai obtenir à l'aide du logiciel blitzbasic les valeurs sur un octet des composantes RVB d'un fichier bmp et les utiliser par la suite pour redessiner l'image avec des setets du vg5000.
Je ne suis qu'un utilisateur pas un pro
Re: Images en quadrichrome sur vg5000
OK, je comprends. Il faut savoir programmer en blitzbasic. Je ne pourrai pas t'aider.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
- Messages : 7965
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: Images en quadrichrome sur vg5000
Humm il me vient une idée.. Tu nous a dis les pixels sont sur 4 octets.. J'en ai déduit que l'alpha est en MSB. Mais en vrai si ca se trouve tu n'as pas de composante alpha. Du coup tes pixels ne font que 3 octets et pas 4, ce qui te rends le décodage incompréhensible!
Commence d'abord par lire le fichier octet par octet, et tu va peut-être découvir que les octets s'enchainent rouge, vert, bleu, rouge, vert,bleu,... pour la 1ère ligne (celle en bas de l'image), puis pareil pour la ligne au dessus, etc.
Je ne connais pas non plus ce basic, mais si ReadInt() te lit un entier 32bits, je ne serais pas surpris qu'il y ait un ReadByte() lise un entier 8 bits, un octet.
Commence d'abord par lire le fichier octet par octet, et tu va peut-être découvir que les octets s'enchainent rouge, vert, bleu, rouge, vert,bleu,... pour la 1ère ligne (celle en bas de l'image), puis pareil pour la ligne au dessus, etc.
Je ne connais pas non plus ce basic, mais si ReadInt() te lit un entier 32bits, je ne serais pas surpris qu'il y ait un ReadByte() lise un entier 8 bits, un octet.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
lequel choisir et comment ?
- Pièces jointes
-
- Capture d’écran de 2020-12-04 18-31-00.png (145.53 Kio) Consulté 4020 fois
Je ne suis qu'un utilisateur pas un pro
Re: Images en quadrichrome sur vg5000
3 x ReadByte pour lire chaque composant de couleur dans l'ordre little-endian, donc BLEU, VERT puis ROUGE.
Genre :
Genre :
Code : Tout sélectionner
B% = ReadByte(fichier_BMP);
V% = ReadByte(fichier_BMP);
R% = ReadByte(fichier_BMP);
Re: Images en quadrichrome sur vg5000
Et il faut commencer au début de l'image dans le fichier .bmp. L'offset est donné par l'octet à l'adresse 0x0a de l'en-tête du fichier.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
c'est pas gagné
Code : Tout sélectionner
file$=requestFile ("fichier image","bmp",false)
Graphics 800,600,32,2
Dim num(100000)
fil=ReadByte (file$)
For i=1 To 2500
num(i)=ReadInt(fil)
Next
CloseFile(dataout)
For i=36 To 600 Step 3: v=v+1
y=num(i)
Line 0,250,0,0
Color 255,255,255
red= Int y /(256*256*256) Mod 256
green= Int y /(256*256) Mod 256
bleu= Int y/256 Mod 256
If bleu=-1 Then bleu=255
If green=-1 Then green=255
If red=-1 Then red=255
file$=OpenFile ("c/rouge.bmp")
Graphics 800,600,32,2
Dim num(100000)
fil=ReadByte (file$)
For i=1 To 2500
num(i)=ReadInt(fil)
Next
CloseFile(dataout)
For i=36 To 600 Step 3: v=v+1
y=num(i)
Line 0,250,0,0
Color 255,255,255
red= Int y /(256*256*256) Mod 256
green= Int y /(256*256) Mod 256
bleu= Int y/256 Mod 256
If bleu=-1 Then bleu=255
If green=-1 Then green=255
If red=-1 Then red=255
Text x,u,"octets"+y
Text x+500,u,"?"+v
u=u+10
If u>600 Then u=0:Delay 100000:End
Flip
Next
Delay 10000
Text x+500,u,"?"+v
u=u+10
If u>600 Then u=0:Delay 100000:End
Flip
Next
Delay 10000
Je ne suis qu'un utilisateur pas un pro
- rendomizer
- Messages : 413
- Inscription : 17 juin 2016 21:00
- Contact :
Re: Images en quadrichrome sur vg5000
je n'arrive toujours pas à comprendre je dois être complètement diminué pour ne plus y arriver ou alors complétement con... les composantes RVB alpha me fond des melanges RVB incomprhenssible alors que je n'ai que le vert a 51
Voila ce qu'il me donne !!!
Code : Tout sélectionner
file$=RequestFile$("choose a wav file","bmp",False)
Graphics 800,600,32,2
Dim num(100000)
fil=OpenFile(file$)
For i=1 To 2500
num(i)=ReadByte (fil)
Next
CloseFile(dataout)
For i=57 To 600 Step 4: v=v+1
y=num(i)
y2=num(i+1)
y3=num(i+2)
y4=num(i+3)
Line 0,250,0,0
Color 255,255,255
Text x,u,"BLEU "+y
Text x+160 ,u ,"VERT "+y2
Text x+240,u ,"ROUGE "+y3
Text x+320,u ,"alpha "+y4
Text x+500,u,"?"+v
u=u+10
If u>600 Then u=0:Delay 100000:End
Flip
Next
Delay 50000
Je ne suis qu'un utilisateur pas un pro