Quelle est la solution la plus courte en c/C++?Comment redimensionner une image avec c/C++ dans Windows?
Répondre
Vous ne donnez pas trop d'informations, donc je vais aller avec StretchBlt
Pour un exemple, voir Scaling an Image.
Je ne vais pas vous donner une démo, mais essayer de faire ce qui suit:
- créer bitmap de destination qui est de votre taille désirée
- sélectionner ce bitmap dans le contexte de l'appareil
- StretchBlt bitmap d'origine sur le contexte de l'appareil précédemment mentionné
- désélectionner bitmap du contexte de l'appareil
Cette recette ci-dessus ne nécessite aucune bibliothèque alors GDI qui est déjà présent dans Windows. Et si vous prévoyez de dessiner quelque chose en C++, vous devriez quand même vous familiariser avec cette bibliothèque.
Regardez ici: http://www.ucancode.net/Free-VC-Draw-Print-gdi-example-tutorial/GDI-Object-VC-MFC-Tutorial.htm
ou ici: http://www.olivierlanglois.net/clover.html
si vous ne prévoyez pas d'utiliser MFC pour la tâche.
L'un des algorithmes de remise à zéro les plus simples est le plus proche voisin. Supposons que vous rééchelonniez à partir d'une image dans un tableau de taille x1 y1 à une autre taille x2 y2. L'idée est de trouver le décalage entier le plus proche dans le tableau original pour chaque position de tableau cible. Donc, votre algorithme de remise à zéro se termine par quelque chose comme ceci:
const int x1 = 512;
const int y1 = 512;
const int x2 = 64;
const int y2 = 64;
unsigned char orig[x1*y1]; /* Original byte array */
unsigned char target[x2*y2] /* Target byte array */
for(int i=0;i<x2;i++)
{
for(int j=0;j<y2;j++)
{
xoff = (i*x2)/x1;
yoff = (j*y2)/y1;
target[i+j*x2] = orig[xoff+yoff*x1]
}
}
Cela donnera une image redimensionnée en bloc. Pour de meilleurs résultats, vous pouvez utiliser un interpolateur polynomial moyen ou tout autre type.
Quelles bibliothèques utilisez-vous? Comment représentez-vous les images? La plupart des bibliothèques d'images devraient déjà être capables de le faire, par ex. Qt a QPixmap avec scaled() et GDI a StretchBlt.
Ou vous pouvez le coder vous-même avec bicubic interpolation.
- 1. Comment redimensionner une image?
- 2. Comment redimensionner une image avec jquery
- 3. Comment redimensionner une image dans un QTextEdit?
- 4. Comment redimensionner une image dans QLabel
- 5. redimensionner une image sans UIScrollView
- 6. Comment redimensionner une image depuis Uri?
- 7. image Redimensionner dans asp.net
- 8. Comment redimensionner une image en C++?
- 9. Comment redimensionner une image pour l'adapter à Image :: Magick?
- 10. comment redimensionner une image tout en enregistrant dans un dossier
- 11. Comment redimensionner et positionner une image dans Crystal Reports
- 12. Comment redimensionner une image à une taille de fichier spécifique?
- 13. Javascript redimensionner le texte comme une image
- 14. Comment redimensionner dynamiquement le formulaire Windows dans une application mobile?
- 15. Redimensionner une image monochrome en C#
- 16. Comment redimensionner une image pour l'impression sans dégrader la qualité?
- 17. comment redimensionner une image avec une taille inconnue à une taille spécifique sans trop de déformation?
- 18. AutoHotKey - Redimensionner Windows
- 19. Comment redimensionner et dessiner une image en utilisant wxpython?
- 20. Comment redimensionner une image lors du chargement en utilisant Zend_File_Transfer_Adapter_Http();
- 21. Redimensionner une image en utilisant Javascript dans Opera Browser
- 22. jquery redimensionner image et rotator
- 23. multi Image: défiler comme redimensionner
- 24. Comment redimensionner une image en utilisant PEAR PHP
- 25. Comment redimensionner et enregistrer une image sur l'iPhone?
- 26. Redimensionner et faire glisser Image
- 27. Comment supprimer cc, bcc dans MailComposerViewController?
- 28. Processus fork avec CC .NET
- 29. redimensionner image jpeg en java
- 30. CodeIgniter Image Manipulation (Redimensionner & Filigrane)
Quelle représentation d'image utilisez-vous? Quelles bibliothèques avez-vous disponibles? –
Ajouter un peu plus d'informations sur le problème, c'est actuellement très vague. – shuttle87