Salut a tous j'aimerai afficher une image en c sans pour autant utiliser les bibliotheques c'est a dire le faire avec des interruptions de C
est ce que quelqu'un pourrai m'aider
Version imprimable
Salut a tous j'aimerai afficher une image en c sans pour autant utiliser les bibliotheques c'est a dire le faire avec des interruptions de C
est ce que quelqu'un pourrai m'aider
Qu'entends tu par là ?Citation:
Envoyé par amadoulamine1
Tu pourrais nous expliquer STP. Je suis sûr que je ne suis pas le seul à ne pas avoir compris...
Pour afficher une image il faut déjà pouvoir lire un format d'image et pour ca il te faut connaître dans les détails les spécifications du format à utiliser, c'est pas toujours simple.
De plus le Langage C ne permet pas d'affichage graphique dans sa forme standard (ANSI / ISO), il te faut recourrir à une bibliothèque tierce pour pouvoir effectuer un affichage !
Pas possible sur un système évolué. Le temps de la bidouille est terminé.Citation:
Envoyé par amadoulamine1
vous afficher l'image mais en appelant une seule biblioteque de graphics
puis vous allez dessigner la matrice vous pouvez essayez cette exemple
et merci chere :D mon amiCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include<stdio.h> #include<conio.h> #include<graphics.h> void dessiner(int M[10][10],int nl,int nc){ for(int l=0;l<nl;l++){ for(int c=0;c<nc;c++){ putpixel(200+c,200+l,M[l][c]); } } } void main(){ int pg=0,mg; initgraph(&pg,&mg,"c:\\tc\\bgi"); int M[10][10]={{15,15,15,15,15,15,15,15,15,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,0,0,0,0,0,0,0,0,15}, {15,15,15,15,15,15,15,15,15,15}}; //line(0,0,100,100); dessiner (M,10,10); getch(); }
d'accord je vais tester pour voir
C'est pas exactement cela
en fait j'ai entendu parler d'un procede qui consisterait a stocker l'image en question dans une matrice avant de l'afficher
Est-ce que quelqu'un pourrait m'eclairer sur ce point
En fait quand je parlais de ne pas utiliser de bibliotheque je parlais surtout des sdl et autres ajouts et non des bibliotheques standard
Tu peux stocker ce que tu veux où tu veux, tant que tu n'as pas de fonction système putpixel() (ou équivallent), tu ne pourras rien mettre dans un écran graphique.Citation:
Envoyé par amadoulamine1
Ce qu'il faut comprendre, c'est que le graphisme est un mode de fonctionnement de la carte écran dans lequel la mémoire vidéo associée est organisée en pixels au lieu de caractères (mode texte).
Théoriquement, pour écrire dans l'écran graphique, il suffit d'avoir accès à cette mémoire vidéo. Certes, c'était possible sur un système rustique comme DOS, qui était d'une permissivité inimaginable de nos jours, mais avec les systèmes modernes comme Windows ou les unixoïdes, il n'est absolument plus question qu'une application aille jouer directement avec le matériel. C'est interdit matériellement par la MMU (Memory Management Unit) qui fait la police.
On doit donc impérativement passer par une fonction système. Si tu indiques quel est ton système, on peut essayer de t'aider, encore que c'est relativement complexe...
Ah oui d'accord
j'ai win xp sp2
avec
Description du périphérique Intel(R) 82865G Graphics Controller
Identification de la carte Intel(R) 82865G Graphics Controller
Identification du BIOS Intel Video BIOS
Type de circuit Intel(R) 82865G Graphics Controller
Type de DAC Interne
Pilotes installés ialmrnt5 (6.14.10.4396)
Taille de la mémoire 96 Mo
Le plus simple est probablement d'utiliser les fonctions de l'API Windows, ou éventuellement de Direct X.Citation:
Envoyé par amadoulamine1
Détails sur le forum Développement Windows.
Oui je sai que se seari plus simple mais quand meme je voudrai l'afficher sans les APi ou GDL seulement avec les bibliotheques standart du C
Si vous pouviez m'expliquer juste le principe car je sai qu'il faut allouer une matrice de la taille de l'image et stocker les pixels dans la matrice mais maintenant mon probleme c'est comment stacker les pixels dans la matrice
Comme te l'a déjà dit Emmanuel, aucune possibilité sous un OS évolué : L'OS ne te donne pas accès aux pixels sans passer par SES fonctions (non-standard ET non-POSIX, cela va de soi).
Par contre, tu peux jouer avec la carte si tu veux en mode réel (DOS 16 bits, etc.).
En mode étendu, (win32, linux etc.) c'est pas possible. C'est si dur à comprendre ? Les fonctions systèmes sont faites pour ça.Citation:
Envoyé par amadoulamine1
C'est pas possible d'être aussi bouché...
Surtout que dans la bibliothéque standard du C il n'y a rien pour afficher une image mais quand je dis rien c'est nada wélou nothing nichts nulla et même niets pour tout te dire