Redimensionnement image Borland C++

jfouquet Messages postés 1 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 14 juin 2005 - 14 juin 2005 à 09:19
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 - 14 juin 2005 à 09:45
Bonjour,



Je travaille actuellement sous Borland C++ 5.

Je suis amené à afficher une image (jpeg,bmp,ico…) dans un TImage bon ça pas de problème.

Mais je dois afficher des miniatures de l’image chargée (114*152 qu’on appellera moyenne et 21*28 : mini)
bon avec la propriété Strech de TImage ça pose pas de trop de problème
mais je pense qu’il charge l’image (en bmp ? frappez-moi si je me
trompe) avec sa taille réelle donc si mon image fait 1 Mo en bmp et que
je la charge une fois grandeur nature puis 12 fois en moyenne et 12 fois en mini ça fait beaucoup et d’ailleurs je retrouve ce phénomène en affichant les ressources mémoires consommé par l’application.



Donc
j’ai essayé avec la propriété StretchDraw de Canvas mais ça marche que
si je passe par un fichier temporaire que je sauvegarde sur le disque
(pas top) et encore ça marche que si l’image originale est un bitmap.



Sinon ça ça marche mais que si l’originale est un bitmap :



tmp et bmp definit en tant que TBitmap ;



<!--c1-->





<!--ec1-->tmp->LoadFromFile(&struct_page[k].ImageMere[0]);
bmp->Width = 28;
bmp->Height = 21;
bmp->Canvas->StretchDraw(bmp->Canvas->ClipRect, tmp);
tab_mini[k]->Picture->Bitmap = bmp;<!--c2-->

<!--ec2-->



Par contre si je fais ça avec un Jpeg j’ai une jolie image blanche :



ImageOriginale->Picture->LoadFromFile(&struct_page[k].ImageMere[0]);



<!--c1-->

<!--ec1-->bmp->Width = 28;
bmp->Height = 21;
bmp->Canvas->StretchDraw(bmp->Canvas->ClipRect, ImageOriginale->Picture->Bitmap);
tab_mini[k]->Picture->Bitmap = bmp;<!--c2-->

<!--ec2-->



Comment puis-je faire pour afficher mes images miniatures tout en utilisant le moins de mémoire possible ?



Merci beaucoup

1 réponse

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
14 juin 2005 à 09:45
bonjour,

il y a une librairie avec le code CXImage qui traine sur le Net ( codeproject par exemple) il y a la fonction de redimensionnement dont vous devriez vous inspirer.

louis14
0
Rejoignez-nous