Hello tout le monde, je susi nouveau et G déjà besoin d'aide

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Hello tout le monde, je susi nouveau et G déjà besoin d'aide

Message par Jenova »

Bah voila, presque tout est dans le titre, je commence avec PureBasic et je compte reprendre en main un de mes vieux projets mais G déjà un problème que je n'arrive pas (pour le moment) à résoudre, c'est pourquoi je fait appel à vous :)
Voici grosso-modo les étapes qui menent à ce prob:
- activation d'une fenetre windows
- activation d'un screen dans cette fenetre
- chargement d'une image au format BMP
- scan de l'image avec point() et memorisation des composantes R G et B dans un tableau type MonImage.b(2,TailleX,TailleY) (G mis 2 parceque 0=Red;1=Green;2=Blue)
-Dans le Screen de la fenetre, j'affiche à gauche le contenu reconstitué à la main avec Plot() et les valeurs RGB précédament mémorisées, à droite j'affiche directement l'image.

Et C la que tout déconne et j'ai du mal à comprendre pourquoi...
L'image reconstituée n'a pas les memes couleurs que celle d'origine.
D'ou peu provenire ce bug ? 8O
bah en tout cas si vous pouviez m'aiguiller la dessus ça serrai sympa :D
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Bonjour :oops:

Comme toujours un peu de code nous aiderait à comprendre ton problème, même s'il ne marche pas ou si les syntaxes ne sont pas les bonnes cela nous permettrait de te répondre le plus précisement possible ! :lol:
Denis

Bonne Jounée à tous
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

un tableau de .b est signé, donc a mon avis c'est ca qui ne va pas. Essaye de le déclarer en .w ou .l
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Message par Jenova »

sauf si je me trompe
.w = word = 0 to 65535
.l = long = infini ah non, la je me trompe
.b = byte = 0 to 255
non ?

ahhh non, autant pour moi, .b = -128 to +127
merci ça explique tout
mais comment déclarer une variable non signée ?
je ne trouve pas d'équivalent à la commande Unsigned du C++
Dernière modification par Jenova le mar. 09/mars/2004 12:02, modifié 2 fois.
CORBASE
Messages : 96
Inscription : mar. 24/févr./2004 14:06

Message par CORBASE »

Jenova, j'aimerais bien pouvoir t'aider, mais je suis comme BrossBen, sans code c'est un peu dur ...

Sinon, je n'est pas bien saisit ce que tu voulait faire ..
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Message par Jenova »

merci corbase (et les autres) mais le prob est isolé, c'est cette histoire de variable déclarée comme signée, maintenant comment définire une variable de type Byte non signée ? moi G pas trouvé de commande equivalente à Unsigned du C++
CORBASE
Messages : 96
Inscription : mar. 24/févr./2004 14:06

Message par CORBASE »

Je ne pourrais pas te dire, mais pour résoudre ton problème, moi je mettrais une variable de type WORD, comme sa c'est réglé.

Sinon pour l'histoire du Unsigned je n'en ai aucune idée .. désolé ..
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Message par Jenova »

le type word utilise 2 octet, C trop long à gerer, moi il me faudrai un seul octet pour encoder un nombre d'une valeur allant de 0 à 255
Mais m... ! qu'elle nouille je fais ! J'ai qu'a alouer un bloc de memoire et le gerer avec un PokeB et PeekB !
Merci à tous ;) j'hespere pouvoir un jour vous rendre la pareille :D :wink:
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Message par Fred »

en fait tu peux utiliser un tableau .b avec l'astuce suivante:

Code : Tout sélectionner

TaVariableNonSignee.l = TonTableau.b(0) & $FF
le '& $FF' permet de ne prendre en compte que les 8 premiers bits de la valeurs, ce qui revient a une variable non signée. Il n'y a pas de types non-signé en PureBasic. A noter que '& $FF' est une operation extrement rapide au niveau du processeur.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

ou tout laisser en long car on est plus au ko de variable près vu la quantité de ram dès ordi actuel :wink: moi, perso, je m'embêtent pas avec les w ou b
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Invité

Message par Invité »

bah le problème n'est pas vraiment au niveau de la taille mais plutot au niveau du processeur, à quoi bon demander au processeur de gerer 2 voir 4 octet alors qu'on n'a besoin que d'un octet, surtout si il s'agit d'un tableau qui devra être consulté en intégralité pour chaque frame et que de lui dépend la rapidité du jeu.
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Message par Jenova »

oups G oublié de me conecter, le précédent message était de moi :oops:
CORBASE
Messages : 96
Inscription : mar. 24/févr./2004 14:06

Message par CORBASE »

Moi je suis comme régis, on ne tourne plus sous des 486 :p

Sinon, ya Fred qui a priori ta donné un bout de code hyper rapide au niveau CPU, donc vala :p
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

justement , c'est la question que je me posais , je vais ouvrir un post pour lancer le débat sur ce sujet .
Avatar de l’utilisateur
Jenova
Messages : 96
Inscription : mar. 09/mars/2004 10:27

Message par Jenova »

au fait, existe-t-il des tutoriaux qui parlent de la gestion des block de memoire, des Poke et Peek ? parceque moi G quelques problèmes pour cerner cette logique des pointeurs (honte à moi :oops: )
Répondre