salut à tous, je suis en train de me faire un petit programme qui modifierais les propriétés d´une photo (nom du fichier, résolution, rotation de la photo, etc...) selon ce que l´usager veut...
le probleme, c´est que mes connaissances en c++ se limite à la gestion d´inventaire, je m´y connais presque pas en manipulation de fichier, ce topic me servira donc pour poser certaine question (assez nombreuse pour l´instant!)...
donc pour commencer, je voudrais savoir comment faire pour lire tous les fichiers dans un dossier selon leur extensions, puis obtenir certaines de leur propriétés (par exemple, la taille du fichier, la résolution en pixel, etc..) et ce sans utilisé windows.h car visual c++ ne possede pas le SDK (plutot stupide d´ailleur)
comme la seule méthode que je connais utilise windows.h, je te recommande tout simplement d´instaler le SDK depuis le site de microsoft (à télécharger gratuitement).
Mais tes programmes ne seront pas portables.
Si tu veux faire un truc portable, il te faudra attendre quelqu´un qui sait faire ça avec d´autres fonctions
Pour le listing des fichiers sous Windows, regarde mon tuto §I.3.1
(cf ma carte)
J´ajoute que cela te pemettra d´obtenir le nom de tous les fichier du répertoire, ainsi que les sous répertoire, la taille, etc...
Mais la résolution de l´image (par exemple 320*200) est écrite dans le fichier lui meme (et non dans l´aborescence du disque contrairement a la taill en octet du fichier) :
il faudra donc, pour avoir cela, pouvoir lire un fihcier d´image. Des lib tel SDL avec l´extention SDL_Image te permettent cela : de lire une image, donc sa résolution et son bitmap.
merci de ta réponse Fvirtman, j´irai faire un tour
dnob: comme tu me l´avais dis il y a 2semaines, j´ai été sur le site de microsoft mais il y a tellement de SDK différent que je n´ai su quel choisir.. finalement j´en ai télécharger un qui semblais approprié mais ca ne donne aucun résultat lorsque je l´installe.. j´ai fini par demander conseil a mon prof d´info qui m´as tout simplement répondu que c´était assez compliquer (pour un débutant comme moi) d´installer le SDK sur visual C++ et qu´il vaudrait peut-etre mieux, sois l´oublié, sois esseyer de trouver Visual Studio en version complète (ce qui n´est pas donnée et très lourd)
sinon, mon but n´est pas vraiment d´être portable, je fais ce petit prog pour aider mon pere qui peut passer des journées entière à renommer, modifier des photos (il est photographe amateur) donc voila.. ce prog sera utilisé sur 2 pc seulement donc coté portabilité, on peut largement s´en passer!
ps: y a t´il une facon d´exploiter les fichier thumbs de windows pour accèder aux apercu d´image?
Il existe un site web qui recence des formats de fichiers ainsi que leur description:
http://www.wotsit.org/
Cela peut t´aider a changer les propriété de format que tu ne connaitrai pas.
Ce que je vais dire va peut etre paraiter stupide mais peu importe :
Il est possible d´utilser un code php présent dans un fichier en utilisant la commadne windows. POur cela, il faut copier un dossier contenant un executable qui va retourner le resultat d´un fichier php (choisis).
Php va te permettre de connaite la taille, le poind, le type de l´image...
Ma proposition est la suivant : pouvoir lancer la commande approprié pour lancer un fichier php avec par exemple en parametre le nom d´une image, pourvoir recuperer le resultat renvoyé dans la console et de faire joujou avec ton c++.
De la meme maniere, on peut demaner un php de retourner le resultat dans un fichier
m-2 : sur une page du forum création de jeux (faite par lapintade, lgv et mrgoto) il y a un tuto pour installer le SDK et DirectX avec visual C++ express.
http://navilinux.free.fr/dx_visual8.htm
tu peut ne pas installer directX, mais installer le SDK n´est vraiment pas compliqué du tout, même pour un débutant.
deepblue: je ne comprends pas le rapport avec php ?
Si il n´utilise pas sdk (pour x raison), pourquoi ne pas prendre un language alernatif pour trouver certaines infos concernant des fichiers et les utiliser ensuite en c++.
Enfin bon, j´etais fatigué qd j´ai posté, scusez moi si c´est stupide xD
deepblue: parce que je ne connais que le java, xhtml, xml, C et sql... donc rien de tres utile pour ce prog!
j´ai décidé d´utiliser la classe Bitmap de System::Drawing, elle semble pouvoir faire la job (obtenir la résolution, etc..)
sinon, la j´ai un petit probleme, j´utilise un folderbrowserdialog pour obtenir un répertoire, mais comment obtenir tous les noms des fichiers(selon leur extension, en l´occurence, jpg, gif, bmp et jpeg dans notre cas)
dans l´aide de vc++, il font toujours des openfiledialog mais pour mon prog, ca serait totalement inutile d´ouvrir les images une à une...
merci pour toutes vos réponse!
System::Drawing ?
ce ne serait pas du .NET que tu ferais la ?
Il y a dans les API windows une fonction FindFirstFile et des fonctions FindNextFile cherches les sur MSDN elles t´aidront a lister les fichiers.
m-2 > regarde mon tuto, celui dont je t´ai parlé !
Il utilise findfirst et findnext : ça te donne une liste avec les repertoires et les fichiers, et plein de champs qui te permettent de tout retrouver : extention, repertoire ou pas, caché, systeme, lecture seule, etc !
oui c´est bien du .NET que je fais, d´ou le fait que j´ai pas utiliser le SDL comme tu me l´as conseillé Fvirtman car j´ai cru comprendre dans ton tuto qu´il fallait l´utiliser en mode console
m-2 > Tu me prouves une fois de plus que tu n´as pas lu ce que je t´ai mis.
Le tuto §I.3.1 dont je te parle n´utilise pas SDL, il utiilse io.h et et direct.h
SDL n´est qu´une partie de mon tuto.
Toutes les annexes sont des algos purs et des utilisations de lib standard.
* Posté le 15 octobre 2006 à 19:45:20 avertir modérateur
* J´ajoute que cela te pemettra d´obtenir le nom de tous les fichier du répertoire, ainsi que les sous répertoire, la taille, etc...
Mais la résolution de l´image (par exemple 320*200) est écrite dans le fichier lui meme (et non dans l´aborescence du disque contrairement a la taill en octet du fichier) :
il faudra donc, pour avoir cela, pouvoir lire un fihcier d´image. Des lib tel SDL avec l´extention SDL_Image te permettent cela : de lire une image, donc sa résolution et son bitmap.
regarde ton dernier paragraphe et dit moi encore que je n´écoute pas ce que tu dis!
D´acc, autant pour moi pour la partie de lecture de résolution
Je soulignais juste ta phrase :
"sinon, la j´ai un petit probleme, j´utilise un folderbrowserdialog pour obtenir un répertoire, mais comment obtenir tous les noms des fichiers(selon leur extension, en l´occurence, jpg, gif, bmp et jpeg dans notre cas) "
La ici, juste une énumération du repertoire suffit a enlever ce probleme ![]()