コード例 #1
0
        private async void ChangeImageColorType()
        {
            //string mime = string.Format("image/png", fileName.Substring(fileName.LastIndexOf('.') + 1));
            ImageCodecInfo    codec               = ColorAndImageFactory.GetEncoderInfo(cmbMime.SelectedItem.ToString());
            EncoderParameters encoderParameters   = new EncoderParameters(2);
            EncoderParameter  parameterColorDepth = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, GetBitCount());
            EncoderParameter  parameterQuality    = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)numericUpDown1.Value.ToInt());

            encoderParameters.Param[0] = parameterColorDepth;
            encoderParameters.Param[1] = parameterQuality;
            using (MemoryStream ms = new MemoryStream()) {
                var img = _srcImage;
                if (cmbMime.SelectedIndex == 1)
                {
                    img = new Bitmap(_srcImage);
                    _progress.OperationsTotal = img.Height * 2;
                    _progress.OperationsDone  = 0;
                    BlockGUI(true);
                    _progress.ProgressChanged += _progress_ProgressChanged;
                    await OptimizePNG(img);

                    _progress.ProgressChanged -= _progress_ProgressChanged;
                    BlockGUI(false);
                }
                img.Save(ms, codec, encoderParameters);
                _imgBinaryData = ms.ToArray();
                lblSize.Text   = _imgBinaryData.Length.ToByteMetricString(false);
                _image         = new Bitmap(ms);
                //OptimizePNG();
                _area.SetImage(_image);
                _area.Redraw();
            }
        }
コード例 #2
0
 private void button1_Click_1(object sender, EventArgs e)
 {
     using (SaveFileDialog sfd = new SaveFileDialog()) {
         sfd.AddExtension    = true;
         sfd.CheckPathExists = true;
         ImageCodecInfo codec = ColorAndImageFactory.GetEncoderInfo(cmbMime.SelectedItem.ToString());
         sfd.Filter = string.Format("Choosen format({0})|{0}", codec.FilenameExtension);
         if (sfd.ShowDialog() == DialogResult.Cancel)
         {
             return;
         }
         EncoderParameters encoderParameters   = new EncoderParameters(2);
         EncoderParameter  parameterColorDepth = new EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, GetBitCount());
         EncoderParameter  parameterQuality    = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)numericUpDown1.Value.ToInt());
         encoderParameters.Param[0] = parameterColorDepth;
         encoderParameters.Param[1] = parameterQuality;
         using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create)) {
             fs.Write(_imgBinaryData, 0, _imgBinaryData.Length);
         }
     }
 }