Redimensionnement en utilisant le rééchantillonnage bicubique [Résolu]

sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 29 juil. 2012 à 22:57 - Dernière réponse : sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention
- 18 août 2012 à 15:13
Bonjour,
J'ai utilisé le redimensionnement d'images par défaut de l'API Win32 mais il déforme beaucoup les images. En utilisant Photoshop CS5 on arrive à un très bon résultat. Apparemment ils utilisent le rééchantillonage bicubique. Je voulais savoir si un tel code avait déjà été écrit pour Delphi et était libre de droit. J'ai cherché sur le site mais y est vu un rééchantillonnage bilinéaire je ne sais pas la différence et lequel est le plus efficace.
Merci d'aavance de votre aide.
Cordialement.

SISI231
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 3 août 2012 à 21:55
3
Merci
pour tous ceux qui voudrait voir ce que ça donne j'ai mis en ligne mon projet de teste

à vous de juger


[hr]@+Cirec
[hr]

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Cirec
cs_MAURICIO 2233 Messages postés mardi 10 décembre 2002Date d'inscription 15 décembre 2014 Dernière intervention - 30 juil. 2012 à 10:09
0
Merci
Tu peux utiliser windows GDI.
Tu as un exemple d' utilisation dans mon compo TcyBook ici:
Composants Cindy pour Delphi
Faites une donation.
Commenter la réponse de cs_MAURICIO
sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 30 juil. 2012 à 12:07
0
Merci
Et le GDI utilise le rééchantillonnage bicubique, désolé d'insister mais je veux être sûr ?


SISI231
Commenter la réponse de sisi231
sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 30 juil. 2012 à 12:12
0
Merci
Je viens de vérifier ce que tu appelle le GDI est ce que j'appelle l'API Win32 donc ça n'utilise pas le rééchantillonage bicubique.

SISI231
Commenter la réponse de sisi231
cs_cantador 4996 Messages postés dimanche 26 février 2006Date d'inscription 27 mars 2018 Dernière intervention - 31 juil. 2012 à 11:30
0
Merci
bonjour,

Comment ça ?
MAURICIO ne ferait pas dans le bicubique ?

cantador
Commenter la réponse de cs_cantador
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 3 août 2012 à 13:34
0
Merci
Salut,

peux tu nous montrer ce que tu as essayé ... avec quelle API et comment ?

j'ai trouvé un code en C (de Paul Bourke) que j'ai traduit en Pascal et les testes montrent que l'API est plus performante, autant en temps qu'en qualité, que la méthode Bicubique !!!

Dans certain cas, rares, la méthode Bicubique donne un meilleur résultat visuel ... mais le temps d'exécution est très long.

voici les infos que j'ai utilisé:
Various Simple Image Processing Techniques
Written by Paul Bourke


Et la lib en C dans laquelle on trouve la procédure "BiCubicScale"


[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 3 août 2012 à 19:03
0
Merci
J'utilise stretchdraw de TBitmap

SISI231
Commenter la réponse de sisi231
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 18 août 2012 à 13:57
0
Merci
@Sisi231:

ce serait sympa que tu donnes ton avis sur le code avant de poser une nouvelle question !!!

à la base il a été traduit pour toi et d'autre membre (Barbichette & Pseudo3) se sont donné du mal pour en accélérer l'exécution et plus encore

c'est ce genre de comportement qui nous incite à nous abstenir de répondre ... tant que la réponse n'est pas donnée vous êtes la pour dire "ça marche pas, non c'est pas ça etc etc"

et dès que la réponse est donnée .. pouf plus personne

[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 18 août 2012 à 14:11
0
Merci
Bonjour,
Veuille-bien m'excuser, désolé, je viens de tester et en effet la méthode avec GDI est mieux. La seule différence avec mon code est ce HALF_TONE, peux-tu préciser s'il-te-plaît à quoi il sert ?
Merci encore.


SISI231
Commenter la réponse de sisi231
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 18 août 2012 à 15:09
0
Merci
Merci d'avoir répondu aussi rapidement

le HALFTONE augmente de façon significative la qualité du rendu final ... il te suffit de désactiver cette portion de code:
 if GetStretchBltMode(imgResized.Picture.Bitmap.Canvas.Handle) <> HalfTone then
begin
GetBrushOrgEx(imgResized.Picture.Bitmap.Canvas.Handle, pt);
SetStretchBltMode(imgResized.Picture.Bitmap.Canvas.Handle, HalfTone); { }
SetBrushOrgEx(imgResized.Picture.Bitmap.Canvas.Handle, pt.x, pt.y, @pt);
end;

et de faire quelques essais de redimensionnements (différentes tailles) pour te rendre compte qu'a certain moment le résultat est exécrable (pas à toutes les tailles hein) ... avec le HALFTONE ces défauts sont corrigés automatiquement.
voilà j'espère avoir répondu à ta question


[hr]@+Cirec
[hr]
Commenter la réponse de Cirec
sisi231 210 Messages postés mercredi 5 mars 2003Date d'inscription 29 mars 2013 Dernière intervention - 18 août 2012 à 15:13
0
Merci
OK avec cette réponse, le problème est complètement réglé, le problème était que je comparais le GDI avec le strech sans halftone avec le bicubic alors que toi tu comparais le gdi avec halftone avec le bicubic d'où le quiproquo

SISI231
Commenter la réponse de sisi231

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.