Je souhaite redimensionner une image en C # avec un niveau de qualité aussi bon que Photoshop. Existe-t-il une bibliothèque de traitement d'image C # disponible pour faire cette chose?
c#
image
image-processing
image-manipulation
image-scaling
Ramesh Soni
la source
la source
Réponses:
Voici une classe d'assistance de manipulation d'image joliment commentée que vous pouvez consulter et utiliser. Je l'ai écrit comme un exemple de la façon d'effectuer certaines tâches de manipulation d'image en C #. Vous serez intéressé par la fonction ResizeImage qui prend un System.Drawing.Image, la largeur et la hauteur comme arguments.
Mettre à jour
Quelques personnes ont demandé dans les commentaires des exemples de consommation de la classe ImageUtilities, alors c'est parti.
Remarque
N'oubliez pas que les images sont jetables, vous devez donc attribuer le résultat de votre redimensionnement à une déclaration using (ou vous pouvez utiliser un essai enfin et vous assurer d'appeler dispose dans votre enfin).
la source
Lorsque vous dessinez l'image en utilisant GDI +, elle s'adapte assez bien à mon avis. Vous pouvez l'utiliser pour créer une image mise à l'échelle.
Si vous souhaitez mettre à l'échelle votre image avec GDI +, vous pouvez faire quelque chose comme ceci:
la source
new Size
dans la déclaration descaled
:new Bitmap(original.Width * 4, original.Height * 4);
Bibliothèques testées comme Imagemagick et GD sont disponibles pour .NET
Vous pouvez également lire sur des choses comme l'interpolation bicubique et écrire le vôtre.
la source
Articles CodeProject traitant et partageant le code source pour la mise à l' échelle des images:
la source
Utilisez cette bibliothèque: http://imageresizing.net
Lisez cet article de l'auteur de la bibliothèque: 20 Pièges de dimensionnement d'image avec .NET
la source
Essayez les différentes valeurs de Graphics.InterpolationMode. Il existe plusieurs algorithmes de mise à l'échelle typiques disponibles dans GDI +. Si l'un d'entre eux est suffisant pour vos besoins, vous pouvez emprunter cette voie au lieu de vous fier à une bibliothèque externe.
la source
Vous pouvez essayer dotImage , l'un des produits de mon entreprise, qui comprend un objet pour rééchantillonner les images avec 18 types de filtres pour différents niveaux de qualité.
L'utilisation typique est:
de plus, dotImage comprend 140 quelques commandes de traitement d'image étranges, y compris de nombreux filtres similaires à ceux de PhotoShop, si c'est ce que vous recherchez.
la source
Cela pourrait aider
Notez le
InterpolationMode.HighQualityBicubic
-> c'est généralement un bon compromis entre les performances et les résultats.la source
Essayez cet extrait de code de base:
la source
Il existe un article sur Code Project sur l'utilisation de GDI + pour .NET pour redimensionner des photos à l'aide, par exemple, d'une interpolation bicubique.
Il y avait aussi un autre article sur ce sujet sur un autre blog (employé MS, je pense), mais je ne trouve le lien nulle part. :( Peut-être que quelqu'un d'autre peut le trouver?
la source
vous pouvez essayer celui-ci s'il s'agit d'un filtre d'image 2D cgi lowres
la source
C'est un article que j'ai repéré référencé dans le code de Paint.NET pour le rééchantillonnage d'image: diverses techniques simples de traitement d'image par Paul Bourke.
la source
Vous pouvez essayer le noyau magique . Il produit moins d'artefacts de pixellisation que le rééchantillonnage bicubique lors de la mise à l'échelle et donne également de très bons résultats lors de la réduction. Le code source est disponible en c # sur le site Web.
la source
J'ai quelques améliorations pour la réponse du docteur Jones.
Cela fonctionne pour qui voulait redimensionner proportionnellement l'image. Cela a testé et a fonctionné pour moi.
Les méthodes de classe que j'ai ajoutées:
et nouveau disponible en utilisant selon ces codes:
la source