Comme Size
, Width
et Height
sont des Get()
propriétés de System.Drawing.Image
;
Comment puis-je redimensionner un objet Image au moment de l'exécution en C #?
En ce moment, je suis juste en train de créer une nouvelle en Image
utilisant:
// objImage is the original Image
Bitmap objBitmap = new Bitmap(objImage, new Size(227, 171));
Réponses:
Cela effectuera un redimensionnement de haute qualité:
wrapMode.SetWrapMode(WrapMode.TileFlipXY)
empêche les images fantômes autour des bords de l'image - un redimensionnement naïf échantillonnera les pixels transparents au-delà des limites de l'image, mais en reflétant l'image, nous pouvons obtenir un meilleur échantillon (ce paramètre est très visible)destImage.SetResolution
maintient le DPI indépendamment de la taille physique - peut améliorer la qualité lors de la réduction des dimensions de l'image ou lors de l'impressiongraphics.CompositingMode
détermine si les pixels d'une image source doivent être remplacés ou combinés avec des pixels d'arrière-plan.SourceCopy
spécifie que lorsqu'une couleur est rendue, elle remplace la couleur d'arrière-plan.graphics.CompositingQuality
détermine le niveau de qualité de rendu des images en couches.graphics.InterpolationMode
détermine comment les valeurs intermédiaires entre deux points d'extrémité sont calculéesgraphics.SmoothingMode
spécifie si les lignes, les courbes et les bords des zones remplies utilisent le lissage (également appelé anticrénelage) - ne fonctionne probablement que sur les vecteursgraphics.PixelOffsetMode
affecte la qualité du rendu lors du dessin de la nouvelle imageLe maintien du rapport d'aspect est laissé comme un exercice pour le lecteur (en fait, je ne pense pas que ce soit le travail de cette fonction de le faire pour vous).
En outre, c'est un bon article décrivant certains des pièges du redimensionnement d'image. La fonction ci-dessus couvrira la plupart d'entre eux, mais vous devez toujours vous soucier de l' enregistrement .
la source
Bitmap
est essentiellement le nom de la classe, vous pouvez l'enregistrer sous le type de fichier que vous souhaitez.System.Drawing
et ajouterusing System.Drawing.Imaging;
Vous ne savez pas ce qui est si difficile à faire, faites ce que vous faisiez, utilisez le constructeur Bitmap surchargé pour créer une image redimensionnée, la seule chose qui vous manquait était un retour au type de données Image:
la source
yourImage
avant de l'assigner à la nouvelle image?dans cette question , vous aurez quelques réponses, dont la mienne:
la source
Pourquoi ne pas utiliser la
System.Drawing.Image.GetThumbnailImage
méthode?Exemple:
Source: http://msdn.microsoft.com/en-us/library/system.drawing.image.getthumbnailimage.aspx
la source
Vous pouvez essayer net-vips , la liaison C # pour libvips . Il s'agit d'une bibliothèque de traitement d'image paresseuse, en streaming et axée sur la demande, de sorte qu'elle peut effectuer des opérations comme celle-ci sans avoir besoin de charger l'image entière.
Par exemple, il est livré avec un imageur d'images pratique:
Il prend également en charge le recadrage intelligent, un moyen de déterminer intelligemment la partie la plus importante de l'image et de la garder au point tout en recadrant l'image. Par exemple:
Où
owl.jpg
est une composition excentrée:Donne ce résultat:
Tout d'abord, il réduit l'image pour obtenir l'axe vertical à 128 pixels, puis recadre à 128 pixels en utilisant la
attention
stratégie. Celui-ci recherche dans l'image les caractéristiques susceptibles d'attirer l'attention de l'homme, voirSmartcrop()
pour plus de détails.la source
Cette volonté -
////////////////
la source
la source
Low
?Ce code est le même que celui publié dans l'une des réponses ci-dessus .. mais convertira le pixel transparent en blanc au lieu de noir ... Merci :)
la source
Dans l'application que j'ai faite, il était nécessaire de créer une fonction avec plusieurs options. Il est assez grand, mais il redimensionne l'image, peut conserver les proportions et couper les bords pour ne renvoyer que le centre de l'image:
Pour faciliter l'accès à la fonction, il est possible d'ajouter des fonctions surchargées:
Les deux derniers booléens sont maintenant facultatifs à définir. Appelez la fonction comme ceci:
la source
Cliquez ici http://bhupendrasinghsaini.blogspot.in/2014/07/resize-image-in-c.html
la source
C'est le code que j'ai élaboré pour une exigence spécifique, c'est-à-dire: la destination est toujours en format paysage. Cela devrait vous donner un bon départ.
la source
Si vous travaillez avec un
BitmapSource
:Si vous souhaitez un contrôle plus fin de la qualité, exécutez d'abord ceci:
(La valeur par défaut est
BitmapScalingMode.Linear
équivalente àBitmapScalingMode.LowQuality
.)la source
J'utilise ImageProcessorCore, principalement parce qu'il fonctionne avec .Net Core.
Et il a plus d'options telles que la conversion de types, le recadrage d'images et plus encore
la source
Redimensionnez et enregistrez une image pour l'adapter à la largeur et à la hauteur comme une toile en gardant l'image proportionnelle
la source
Utilisez la fonction ci-dessous avec l'exemple ci-dessous pour changer la taille de l'image:
la source
Vous pouvez utiliser le cadre Accord.NET pour cela. Il propose différentes méthodes de redimensionnement:
la source
Remarque: cela ne fonctionnera pas avec ASP.Net Core car WebImage dépend de System.Web, mais sur les versions précédentes d'ASP.Net, j'ai utilisé cet extrait de code à plusieurs reprises et m'a été utile.
la source