Maison  >  Article  >  développement back-end  >  Comment redimensionner une image en C# ?

Comment redimensionner une image en C# ?

WBOY
WBOYavant
2023-09-18 18:41:021407parcourir

C# 如何调整图像大小?

Un bitmap est constitué des données de pixels d'une image graphique et de ses attributs. Il existe de nombreux formats standard pour enregistrer des bitmaps dans des fichiers. GDI+ prend en charge les formats de fichiers suivants : BMP, GIF, EXIF, JPG, PNG et TIFF. Vous pouvez utiliser l'un des constructeurs Bitmap pour créer des images à partir de fichiers, de flux et d'autres sources, et utiliser la méthode Save pour les enregistrer dans un flux ou un système de fichiers.

Dans le code ci-dessous, la méthode CompressAndSaveImageAsync compresse l'image et l'enregistre dans le chemin mentionné.

Le nouveau nom de l'image sera la combinaison de l'ID utilisateur du bureau et de la dateTime

Exemple

private async Task<string> CompressAndSaveImageAsync(Bitmap inputImage, int quality=50){
   string imageSavedPath = string.Empty;
   try{
      var jpgEncoder = await GetEncoderAsync(ImageFormat.Jpeg);
      var imageEncoder = Encoder.Quality;
      var imageEncoderParameters = new EncoderParameters(1);
      var imageEncoderParameter = new EncoderParameter(imageEncoder, quality);
      imageEncoderParameters.Param[0] = imageEncoderParameter;
      var userId = Regex.Replace(WindowsIdentity.GetCurrent().Name, @"[^0&minus;9a&minus;zA&minus;Z]+", "_");
      var currentDateTime = Regex.Replace(DateTimeOffset.Now.ToString().Split(&#39;+&#39;)[0].Trim(), @"   [^0&minus;9a&minus;zA&minus;Z]+", "_");
      var imageName = $"{userId}_{currentDateTime}.jpg";
      imageSavedPath = "C:\Users\K\Desktop\Questions\Images";
      inputImage.Save(imageSavedPath, jpgEncoder, imageEncoderParameters);
      inputImage.Dispose();
   }
   catch (Exception ex){
      throw
   }
   return imageSavedPath;
}
private async Task<ImageCodecInfo> GetEncoderAsync(ImageFormat format){
   ImageCodecInfo imageCodecInfo = null;
   try{
      var codecs = ImageCodecInfo.GetImageDecoders();
      foreach (var codec in codecs){
         if (codec.FormatID == format.Guid){
            imageCodecInfo = codec;
         }
      }
   }
   catch (Exception ex){
      throw
   }
   return imageCodecInfo;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Type d'interface C#Article suivant:Type d'interface C#