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
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à ?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 !
Mon Site
Ma bibliothèque de gestion des chaînes de caractères en C
L'imagination est plus importante que le savoir. A. Einstein
Je ne répond à aucune question technique par MP, merci d'avance !
Pas possible sur un système évolué. Le temps de la bidouille est terminé.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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }mon ami
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.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.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.).
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En mode étendu, (win32, linux etc.) c'est pas possible. C'est si dur à comprendre ? Les fonctions systèmes sont faites pour ça.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
Partager