REDIMENSIONNER BITMAP AVEC BONNE QUALITÉ

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 24 sept. 2004 à 12:00
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 1 août 2006 à 15:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/26351-redimensionner-bitmap-avec-bonne-qualite

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
1 août 2006 à 15:08
Salut à tous!

Pourquoi une nouvelle version?
------------------------------
le fait est que cette fonction bien que très rapide, reste lente entre 50% et plus de 100% de redimensionnement...
L' image est floue (on le note si on redimensionne du texte) et les couleurs un peu délavées ...

Avantages de cette nouvelle version?
--------------------------------
- L' image est moins floue, surtout lorsque l' on réduit entre 50 et 100%
- Les couleurs sont plus claires
- la fonction est plus rapide avec une moyenne de 25% plus rapide !!!

réduire entre 0 et 20% - la vitesse est presque pareille entre la nouvelle version et l' ancienne.
réduire entre 20 et 50% - Environ 30% plus rapide.
réduire entre 50 et 80% - Environ 40% plus rapide.
réduire entre 80 et 100% - Presque 50% plus rapide.

C' est du tout bon surtout que la fonction est plus lente à executer lorsque l' on réduit entre 80% et 100%.
Donc, gagner 50% en vitesse dans cette fourchette, c' est pas mal du tout!

Notez que le gain de vitesse se vérifie de la même façon lorsque l 'on augmente l' image ...
Si on augmente à plus de 500%, on note plus trop le gain de vitesse.

Comment elle fonctionne en mode réduction?
------------------------------------------
Le principe est assez simple: pour chaque pixels du bitmap résultant de la fonction, on cherche les pixels du bitmap de départ avec lesquels on va calculer une moyenne RGB.
Ces pixels sont définis entre RangeY1, RangeY2, RangeX1, RangeX2 formant un rectangle.

Notez que :
J' ai essayé de faire cette fonction en respectant le pourcentage d' influance
des pixels dans la limite de ce rectangle (les pixels au bord de ce rectangle
n' influancent pas à 100% comme les pixels à l' interieur du rectangle).
Malheureusement la fonction s´ est tournée 4 fois plus lente avec aucun gain de qualité est visible à l' oeil nu ...

nJoY!!! et bonnes vacances

PS: pour redimensionner avec une largeur ou hauteur de votre choix, il faut diviser!!! (par ex. hauteur désirée/hauteur actuelle)!!!
Filipe35 Messages postés 470 Date d'inscription vendredi 14 novembre 2003 Statut Membre Dernière intervention 23 octobre 2007 1
18 mai 2006 à 21:46
Rien à dire très bon code

rapide et surtout résultats aux rendez-vous ;)

-2 car les histoires de ratio je suis pas fan :S
A quand une version ou l'on choisis le format de sortie (x,y) :P

8/10

++

Filipe
josswel Messages postés 67 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 3 juin 2009
15 juin 2005 à 08:47
lollll
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
14 juin 2005 à 20:09
C'est le fruit de tous tes efforts Mauricio, c'est normal :P
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
14 juin 2005 à 15:04
Merci Josswel!
Je suis content de voir que cette source fait pas mal de succès :)
josswel Messages postés 67 Date d'inscription lundi 23 mai 2005 Statut Membre Dernière intervention 3 juin 2009
14 juin 2005 à 13:20
toujours aussi parfait maurico
cs_isame Messages postés 31 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 25 juin 2007
27 sept. 2004 à 17:00
c super interessant j'en avais besoin d'ailleurs et celui qui t'a mal noté est ...
pyroflo Messages postés 323 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 17 mai 2005
27 sept. 2004 à 14:52
Bravo !

Très beau résultat !
Rapide en plus :p

Juste une question, serait-il possible de redimensionner l'image à des valeurs fixes et non en pourcentage ?

Exemple : réduire l'image à 100x100

Merci ! :)
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
27 sept. 2004 à 14:40
Merci jlmcom,
il existe 2 types de notes:
-des membres (nous en fait)
- des administrateurs

ce qui c' etait passé c' est que un membre m' avais donné 3/10. d' ou mon 1er commentaire ...
jlmcom Messages postés 57 Date d'inscription mercredi 4 août 2004 Statut Membre Dernière intervention 3 décembre 2004 2
27 sept. 2004 à 11:23
Superbe Mauricio!

Quel est l'enfant de "s " qui saque en notation? s'il y a un pb, il faut avoir le courage de dire ce qui ne va pas! Au moins ça fera avancer les choses!

D'ailleurs comment sont attribuées ces notes. N'y a t-il pas une pondération? Ainsi les récalcitrants en frustrés finiraient par disparaître devant la mojorité de satisfaits.

Encore un qui regarde trop la télé-déprim!
Merci

jlmcom
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
27 sept. 2004 à 10:28
Merci Inekman.
A propos de la fonction, il faut la laisser telle quel, je m' explique:
Si tu veux par exemple redimensionner/enregistrer les images qui sont dans un repertoire, tu dois écrire du code qui utilisera cette fonction. Car ainsi, tu pourras utiliser cette fonction dans n' importe quel programme sans la modifier.
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
24 sept. 2004 à 19:39
Ben je trouve ça carrément trop bien fait. La qualité est vraiment remarquable après le redimensionnement et cela très très rapidement.

Le code est un peu chelou et un poil trop complexe pour mon niveau, procédure dans une procédure, c'est la première fois que je vois ça :-P

Tu devrais faire une maj avec la possibilité d'enregistrer la "resized image". Tant qu'à faire, propose une fonction qui resize plusieurs images à la suite...Ca pourrait être sympa et ça me rendrait grandement service ;-)

En tout cas, ma note est sincère. Très beau taf.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
24 sept. 2004 à 19:04
Merci Inekman,
Tu as vu la qualité des images réduites?
On a pas ça comme qualité avec les fonctions de redimensionnement de base de delphi ...
Inekman Messages postés 291 Date d'inscription dimanche 2 février 2003 Statut Membre Dernière intervention 30 juin 2006
24 sept. 2004 à 16:07
je trouve ça cool moi la miniaturisation.

Excellent taf.

Inekman.10/10.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
24 sept. 2004 à 12:00
Oh lala, la note injuste!
Rejoignez-nous