2012-08-30 13 views
3

Je travaille sur un projet de type CMS dans lequel les utilisateurs peuvent télécharger des images avec leur contenu. Je dois créer des vignettes pour les images téléchargées à la volée. Disons la taille de la vignette comme 125x75Recadrage d'images avec C#

Je peux redimensionner des images sans problème, mais quand il s'agit de l'opération de recadrage, plusieurs problèmes se produisent. Ma procédure de redimensionnement et de recadrage fonctionne comme ceci:

  1. Chargez l'image originale. Redimensionner l'image à la taille désirée en évitant le rapport d'aspect original en fonction de la largeur ou de la hauteur maximale
  2. Si l'image de résultat présente un rapport d'aspect différent du rapport d'aspect de sortie qu'une application de recadrage centrée est appliquée.

Mais ce que je veux achive est une culture sensible au contenu tel que décrit dans l'article de Jue Wang Opticrop: Content-aware Cropping with PHP and ImageMagick

Est-il possible de le faire avec C# ou est-il une bibliothèque qui peut faire cette opération.

Remarque: Je ne souhaite pas le redimensionnement en fonction du contenu. Le redimensionnement sensible au contenu peut être effectué avec ImageResizing.net SeamCarving plugin

+1

Vous demandez en fait cette fonction 'function opticrop ($ image, $ w, $ h, $ out, $ format)' porté sur asp.net, ou avec d'autres termes, une fonction pour déterminer le centre de gravité , et recadrer l'image autour de là. – Aristos

+0

Oui. C'est ce que je cherche exactement. Je dois trouver le centre-de-bord comme vous l'avez mentionné mais comment? Je pense que je dois le porter moi-même. – CemilF

Répondre

1

Si vous utilisez le framework ImageResizing.net, le WhitespaceTrimmer plugin peut être un bon point de départ.

Si vous voulez écrire le code vous-même, this Gist montre une bonne solution en utilisant entropy mais est écrit en Ruby.

+0

Eh bien, en fait, je ne peux pas comprendre comment le plugin WhitespaceTrimmer va m'aider à trouver le centre de la marge comme Aristos commenté sur mon poste. Je n'ai aucun problème avec les espaces blancs. – CemilF

+0

Le plugin WhitespaceTrimmer utilise la détection des contours pour rechercher les parties de l'image à supprimer. Comme il est open-source, j'ai pensé que vous pouviez y jeter un coup d'œil et l'utiliser comme point de départ ... –