CompressJpegUserControl.cs

Description du code

CompressJpegUserControl.cs est un fichier du projet PhotoBrol.
Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/photobrol/.

Projet PhotoBrol :

Editeur d'images en CSharp.

Code source ou contenu du fichier

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using be.gaudry.photobrol.model.image;
  9. using System.IO;
  10. using System.Drawing.Imaging;
  11. using be.gaudry.model.drawing;
  12. using be.gaudry.model;
  13.  
  14. namespace be.gaudry.photobrol.view.controls
  15. {
  16. public partial class CompressJpegUserControl : UserControl
  17. {
  18. private MemoryStream liveBitmap;
  19. private ImageCodecInfo encoderInfo;
  20. private System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;
  21. private BrolImage brolImage;
  22. public CompressJpegUserControl()
  23. {
  24. InitializeComponent();
  25. encoderInfo = PhotoBrolImage.GetEncoderInfo("image/jpeg");
  26. }
  27. [
  28. DefaultValue(typeof(int), "50"),
  29. Browsable(true)
  30. ]
  31. public int Compression
  32. {
  33. get { return 100 - compressionTrkB.Value; }
  34. set
  35. {
  36. int i = value;
  37. if (i > 100) i = 100;
  38. if (i < 0) i = 0;
  39. compressionTrkB.Value = 100 - i;
  40. setCompressInfos();
  41. }
  42. }
  43. [Browsable(true)]
  44. public BrolImage ImageToCompress
  45. {
  46. get { return brolImage; }
  47. set
  48. {
  49. if (value != null)
  50. {
  51. brolImage = value;
  52. inputPB.Image = value.Image;
  53. Bitmap bmpDest = new Bitmap(inputPB.Image, inputPB.Image.PhysicalDimension.ToSize());
  54. outputPB.Image = (Image)bmpDest;
  55.  
  56. inputImageWeightLbl.Text = String.Format("Image de départ : {0}", brolImage.Weight);
  57. /*try
  58.   {
  59.   liveBitmap = new MemoryStream();
  60.   inputPB.Image.Save(liveBitmap, inputPB.Image.RawFormat);
  61.   inputImageWeightLbl.Text = String.Format("Image de départ : {0}", Units.getLengthString(liveBitmap.Length));
  62.   }
  63.   catch(ArgumentNullException)
  64.   {
  65.   //save a modified bitmap
  66.   //ArgumentNullException because the rawformat contains no encoder
  67.   inputImageWeightLbl.Text = String.Format("Image en mémoire : {0}", BrolFile.getWeightString(inputPB.Image));
  68.   }*/
  69. setCompressInfos();
  70. }
  71. }
  72. }
  73. [Browsable(false)]
  74. public Bitmap ImageCompressed
  75. {
  76. get { return (Bitmap)outputPB.Image; }
  77. }
  78. private void compress_Scroll(object sender, EventArgs e)
  79. {
  80. if (inputPB.Image != null)
  81. {
  82. setCompressInfos();
  83. }
  84. }
  85. private void setCompressInfos()
  86. {
  87. compressionLbl.Text = String.Format("{0}%", compressionTrkB.Value);
  88. if (inputPB.Image == null)
  89. return;
  90. try
  91. {
  92. EncoderParameter ep = new EncoderParameter(encoder, Compression);
  93. EncoderParameters eps = new EncoderParameters(1);
  94. eps.Param[0] = ep;
  95. liveBitmap = new MemoryStream();
  96. inputPB.Image.Save(liveBitmap, encoderInfo, eps);
  97. outputPB.Image = System.Drawing.Image.FromStream(liveBitmap);
  98. outputImageLbl.Text = String.Format("Image à sauver : {0}", Units.getLengthString(liveBitmap.Length));
  99. }
  100. catch (Exception e)
  101. {
  102. MessageBox.Show(e.ToString());
  103. }
  104. }
  105. }
  106. }

Structure et Fichiers du projet

Afficher/masquer...


Répertoires contenus dans /var/www/bin/sniplets/bibliobrol/photobrol/view/controls/ 
IcôneNomTailleModification
IcôneNomTailleModification
| _ Répertoire parent0 octets1715904546 17/05/2024 02:09:06
| _histogram0 octets1541007196 31/10/2018 18:33:16
Fichiers contenus dans /var/www/bin/sniplets/bibliobrol/photobrol/view/controls/ 
IcôneNomTailleModificationAction
IcôneNomTailleModificationAction
Afficher le fichier .cs|.csRGBLHistogramUserControl.cs7.13 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csHistogramUserControl.Designer.cs15.78 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csCompressJpegUserControl.Designer.cs13.8 Ko31/10/2018 18:32:51-refusé-
Afficher le fichier .resx|.resxCompressJpegUserControl.resx5.68 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .resx|.resxRGBLHistogramUserControl.resx5.68 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csHistogramUserControl.cs6.31 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .resx|.resxHistogramUserControl.resx5.68 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csCompressJpegUserControl.cs3.77 Ko31/10/2018 18:32:51-refusé-
Afficher le fichier .cs|.csRGBLHistogramUserControl.Designer.cs29.94 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csImageEditorUserControl.cs41.8 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .resx|.resxImageEditorUserControl.resx17.34 Ko31/10/2018 18:32:52-refusé-
Afficher le fichier .cs|.csImageEditorUserControl.Designer.cs126.15 Ko31/10/2018 18:32:52-refusé-

Utilisation de l'explorateur de code

  • Navigation :
    • Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
    • Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
    • La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
    • Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
  • Affichage :
    • Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
  • Actions :
    • Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.

Document créé le 30/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-photobrol-source-rf-view/controls/CompressJpegUserControl.cs.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.