begin process at 2010 02 10 02:06:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

HBITMAP + resize


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

HBITMAP + resize

mercredi 5 mai 2004 à 09:08:36 | HBITMAP + resize

Manson


Salut a tous,

voila, je voudrais faire une fonction, si elle n'existe pas deja,
a laquelle je passe un HBITMAP, une largeur et une hauteur,
et elle me renvoi un HBITMAP correspondant au redimenssionement demande. Alors j'ai essaye plein de choses,
j'ai tente de refaire moi meme le resize en travaillant directements sur le data de l'images, les BITS de l'images recuperer grace a GetDIBits, et ensuite de les reinjecte a une image ayant le meme header que la premiere en fesant un SetDIBits. Mais ca ne marche pas. J'ai tente aussi un StrechDiB mais la c'est pire.

En fait cette fonction va mettre util pour inserer dans un PictureBox, donc un Static avec le flag SS_BITMAP, une image qui se redimenssionne toute seul a la taille du controle, paske je n'ai pas trouver les flags permettant de definir que l'image passe avec STM_SETBITMAP soit redimenssioner a la taille du controle.

Si quelqu'un a une solution ca serait bien.

D'avance merci.

Rno
mercredi 5 mai 2004 à 12:00:46 | Re : HBITMAP + resize

ymca2003

HBITMAP ResizeBmp(HBITMAP hBmpSrc, SIZE newSize)
{
// taille actuelle
BITMAP bmpInfo;
GetObject(hBmpSrc, sizeof(BITMAP), &bmpInfo);
SIZE oldSize;
oldSize.cx = bmpInfo.bmWidth;
oldSize.cy = bmpInfo.bmHeight;

// selection source ds un DC
HDC hdc = GetDC(NULL);
HDC hDCSrc = CreateCompatibleDC(hdc);
HBITMAP hOldBmpSrc = (HBITMAP)SelectObject(hDCSrc, hBmpSrc);

// création bitmap dest et sélection ds un DC
HDC hDCDst = CreateCompatibleDC(hdc);
HBITMAP hBmpDst = CreateCompatibleBitmap(hdc, newSize.cx, newSize.cy);
HBITMAP hOldBmpDst = (HBITMAP)SelectObject(hDCDst, hBmpDst);

// resize
StretchBlt(hDCDst, 0, 0, oldSize.cx, oldSize.cy, hDCSrc, 0, 0, newSize.cx, newSize.cy, SRCCOPY);

// libération ressources
SelectObject(hDCSrc, hOldBmpSrc);
SelectObject(hDCDst, hOldBmpDst);
DeleteDC(hDCSrc);
DeleteDC(hDCDst);
ReleaseDC(NULL, hdc);

return hBmpDst;
}
jeudi 6 mai 2004 à 10:01:07 | Re : HBITMAP + resize

Manson


Rah la la, je vais tester ca. grand merci a toi. VRAIMENT GRAND MERCI.

Rno
jeudi 6 mai 2004 à 10:47:26 | Re : HBITMAP + resize

ymca2003

petite erreur de ma part :

StretchBlt(hDCDst, 0, 0, newSize.cx, newSize.cy, hDCSrc, 0, 0, oldSize.cx, oldSize.cy, SRCCOPY);
samedi 8 mai 2004 à 13:54:14 | Re : HBITMAP + resize

Manson


oui je l'avais vu ... lol ... j'ai pas chercher longtemps mais je me suis pose des questions quand meme :-D J'ai rajouter aussi le setmode sur le Stretch pour eviter de denaturer l'image.

Encore grand merci a toi

Rno


Cette discussion est classée dans : fonction, image, passe, resize, hbitmap


Répondre à ce message

Sujets en rapport avec ce message

Besoin de precision sur l'utilisation de la fonction pour redimensionner une image Bitmap [ par noetom ] Bonjour, j'ai besoin de redimmensionner une image Bmp et j'ai trouvé les sources pour le faire sur le site ici : http://www.cppfrance.com/code.aspx?i la fonction SetBitmap. [ par alaya12 ] Salut a tousDans mon appliction j'ai écris le code suivant:HBITMAP hBitmap = (HBITMAP)LoadImage(NULL,m, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE ); picture Etiquetage ou labelisation d'une image binaire [ par Pannetier ] Bonjour,Je suis en train d'écrire un programme en C qui permet d'identifier plusieurs objets de la même couleur dans une scène. L'inconvéniant est que ouverture d'une application sans utiliser le _spawn [ par clad1986 ] Bonjour à tou(te)s. C'est mon premier post ici. J'espère que je pourrai vous détailler du mieux possible mon problème. Alors, voilà, j'utilise Micros souci en batch [ par zut69 ] Bonsoir,J'utilise des fichiers batch pour automatiser de longues manipulation dans cmd.exeCependant, j'ai un souci quand certaine fonction me demande creation d'un tableau et fonction image [ par zaz0u ] Alors voila je voudrai faire un tableau qui permet d'afficher des images avec la lib SDL!je sais faire un tableau et je sais afficher une image mais m Resize image [Urgent !] [ par The Red Man ] Bonjour,Est-ce que vous avez une idée de l'algo (enfin le code :D) en C qui donnerait la possibilité de réduire ou agrandir une image !Merci ! (win32) Image et memoire [ par mogwai93 ] Bonjour J'ai un static contenant une image et un combobox permettant de choisir l'image à afficher. Jusque là, ca fonctionne. Sauf que je me suis r Manier les HBITMAP [ par Adeon ] Salut !J'aimerai savoir comment lire ou ecire dans un HBITMAP!je sais qu'on doi se servir de VirtualAlloc() mais je comprend pas trop comment on fait.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales