Modification bitmap

cs_noel70 Messages postés 40 Date d'inscription samedi 22 mai 2004 Statut Membre Dernière intervention 25 janvier 2007 - 7 févr. 2005 à 20:47
mygiorgio Messages postés 12 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 1 octobre 2005 - 1 oct. 2005 à 02:00
Bonjour a tous.

Voila, j'essaie depuis un moment de modifier un fichier image (bmp ou jpg),
Dans un premier, j'ai essayer d'afficher cette image dans une fenetre, puis j'ai recuperer ces caracteristique (longueur et hauteur).
Puis en fonction de ces caracteristiques et d' une zone de saisis, je voudrais modifier cette image et l'enregistrer.


Pour afficher l'image:

Dans le fichier ressource

CONTROL "",IDC_PICTUREBOX,"Static",SS_BITMAP,12,92,608,373

Dans la section .code

invoke BitmapFromFile, addr Filename ; Charge le fichier (chemin)
mov hBmp, eax
invoke CopyImage, hBmp, IMAGE_BITMAP, 800,600,LR_CREATEDIBSECTION ; redimensionne l'image en memoire( 800 pixels=Longueur, 600 pixels=Hauteur)
invoke SendMessage, hPicture, STM_SETIMAGE, 0, eax; envoie le message a la picturebox d'afficher l'image

Pour recupere la la longueur et la hauteur de l'image:

Dans la section .data?

hBmp HBITMAP ?

Dans la section .code


invoke GetObject, hBmp, SIZEOF bmih, addr bmih ; recupere les information de l'image
mov eax, bmih.bmWidth ; recupere la hauteur et la met dans eax
mov Longueur, eax
mov eax, bmih.bmHeight
mov Largeur, eax

Puis, ce que je voudrais faire, c'est reecrire sur ce fichier (Filename) de nouvelle caracteristique (longueur et hauteur), j'ai esayer ceci, mais ca ne marche pas.


mov ofs.cBytes,SIZEOF OFSTRUCT
mov ofs.szPathName, OFS_MAXPATHNAME
invoke OpenFile, offset Filename, offset ofs, OF_READWRITE
mov hFile, eax



mov bmih.bmHeight,600 ; met 600 pixels dans le parametre de hauteur de bmih
mov bmih.bmWidth,800

invoke WriteFile, hFile,addr bmih, SIZEOF BITMAP, addr nul, 0 ; ecrit dans le fichier (Filename) les nouvelles caracteristiques.

Mais ceci ne marche pas, apres l'ecriture dans le fichier, mon fichier perd toutes ces carcteristiques,
quand je l'ouvre ce fichier apres cette ecriture avec l'apercu des image windows, j'obtiens ce message
Aucun apercu n'est disponible

Si quelqu un pourrait m'aider merci.

1 réponse

mygiorgio Messages postés 12 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 1 octobre 2005
1 oct. 2005 à 02:00
Salut l'ami !
Si j'ais bien compri, tu cherches a redimensionner une image ... ?
Si oui, alors,je suis dans le meme cas que toi. et je pense que je peut dir qu'on est pas dans une super position.

Donc déjà l'ami, je pense qu'il ne suffit pas de modifier les en-tetes du fichier pour que l'image soit differente(apparence) (en faite j'en suis sur : les entete son des info permettante de lire le fichier. ce ne sont pas elle qui font l'image a propprement parlé)
Il faut que tu cree un nouveau fichier, et que tu y cree les en-tetes (hauteur , largeur , taille de l'image ...) et l'image elle meme. Pour cela, tu doit trouver un algorithme qui te permet de "dezoomer"/"zoomer" sur l'image.
Comment faire?!!!! ... j ne sais pas : prendre a papier , faire des petit carré representant des pixel desinner un truc assé simple (pas trop quand meme) et redesinner ce meme dessin avec une dimension reduite.

Et maintenant , on en est au meme point.

pour commencé, je pense que le plus simple est de prendre une image carré que l'on diminu de mointié
Encore un truc: a la fin de la redimension , il est preferable d'ajouter un legé flou.

PS : si tu trouve un truc , tu me le dit
0
Rejoignez-nous