@@ -30,6 +30,8 @@ public Form1()
3030 {
3131 InitializeComponent ( ) ;
3232
33+ btn_Save . Enabled = false ;
34+
3335 //selBox_Format.DataSource = Enum.GetValues(typeof(PixelFormat));
3436 selBox_Format . DataSource = Enum . GetValues ( typeof ( TransformColorFormats ) ) ;
3537 selBox_Format . SelectedIndex = 0 ;
@@ -47,7 +49,7 @@ private void Btn_open_Click(object sender, EventArgs e)
4749 {
4850 OpenFileDialog openFile = new OpenFileDialog ( ) ;
4951 openFile . InitialDirectory = Environment . GetFolderPath ( Environment . SpecialFolder . UserProfile ) ;
50- openFile . Filter = "Images (*.jpg, *.jpeg, *.png, *.bmp) |*.jpg;*.jpeg;*.png;*.bmp" ;
52+ openFile . Filter = "Images|*.jpg;*.jpeg;*.png;*.bmp" ;
5153 openFile . RestoreDirectory = true ;
5254
5355 if ( openFile . ShowDialog ( ) == DialogResult . OK )
@@ -422,6 +424,7 @@ private void ConvertDone(object sender, RunWorkerCompletedEventArgs e)
422424 break ;
423425 }
424426 btn_Convert . Enabled = true ;
427+ btn_Save . Enabled = true ;
425428 GC . Collect ( ) ;
426429 }
427430
@@ -495,5 +498,42 @@ private void tabBox_SelectedIndexChanged(object sender, EventArgs e)
495498 num_Height . Enabled = false ;
496499 }
497500 }
501+
502+ private void btn_Save_Click ( object sender , EventArgs e )
503+ {
504+ SaveFileDialog sfd = new SaveFileDialog ( ) ;
505+ sfd . Filter = "JPEG|*.jpg;*.jpeg;|PNG|*.png|BMP|*.bmp" ;
506+
507+ if ( sfd . ShowDialog ( ) == DialogResult . OK )
508+ {
509+ string ext = Path . GetExtension ( sfd . FileName ) ;
510+
511+ switch ( ext )
512+ {
513+ case ".jpg" :
514+ case ".jpeg" :
515+ EncoderParameters encParams = new EncoderParameters ( 1 ) ;
516+ encParams . Param [ 0 ] = new EncoderParameter ( System . Drawing . Imaging . Encoder . Quality , 90L ) ; // 90%
517+
518+ ImageCodecInfo ici = null ;
519+ foreach ( ImageCodecInfo codec in ImageCodecInfo . GetImageEncoders ( ) )
520+ if ( codec . MimeType == "image/jpeg" )
521+ ici = codec ;
522+
523+ imageBox . Image . Save ( sfd . FileName , ici , encParams ) ;
524+
525+ //imageBox.Image.Save(sfd.FileName, ImageFormat.Jpeg);
526+ break ;
527+ case ".png" :
528+ imageBox . Image . Save ( sfd . FileName , ImageFormat . Png ) ;
529+ break ;
530+ case ".bmp" :
531+ imageBox . Image . Save ( sfd . FileName , ImageFormat . Bmp ) ;
532+ break ;
533+ default :
534+ return ;
535+ }
536+ }
537+ }
498538 }
499539}
0 commit comments