private void Comprimir_Guardar_Imagen(Image image, string r_salida) { try { string carpeta_salida = Ruta_Entrada + "\\salida-final"; if (!File.Exists(carpeta_salida)) { Directory.CreateDirectory(carpeta_salida); } r_salida = carpeta_salida + "\\" + r_salida; Ruta_Salida = carpeta_salida; using (Bitmap bmp1 = new Bitmap(image)) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 100L); myEncoderParameters.Param[0] = myEncoderParameter; //if (check90.Checked) bmp1.RotateFlip(RotateFlipType.Rotate90FlipX); bmp1.SetResolution(302, 302); bmp1.Save(r_salida, jpgEncoder, myEncoderParameters); return; } // Get a bitmap. The using statement ensures objects // are automatically disposed from memory after use. long calidad = 0; calidad = long.Parse(track_bar_calidad.Value.ToString()); using (Bitmap bmp1 = new Bitmap(image)) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, calidad); myEncoderParameters.Param[0] = myEncoderParameter; if (check90.Checked) { bmp1.RotateFlip(RotateFlipType.Rotate90FlipX); } bmp1.SetResolution(310, 310); bmp1.Save(r_salida, jpgEncoder, myEncoderParameters); return; if (Keys.ToArray().Length > 0 && ImageExt.ConKey) { ImageExt.ListarErrores(); ImageExt.getApiValid(Keys); ImageExt.RemoveBackground(r_salida, Keys); } else { contKetMessage++; if (contKetMessage == 1) { MessageBox.Show("¡No tiene key de Remove Background!"); } } } } catch (Exception ex) { string es = ex.Message; } }
private void hilo_DoWork(object sender, DoWorkEventArgs e) { try { if (Carga_Uno) { RecorrerFolderEntrada(); } else { RecorrerFolderEntrada(); int ancho = 0, alto = 0; int indice = 0; bool tiene_tamanios = (txt_ancho.Text.Trim().Length != 0 || txt_alto.Text.Trim().Length != 0); //Ruta_Salida = txt_r_salida.Text; //bool existe_salida = (txt_r_salida.Text.Trim().Length > 0); //if (!existe_salida) //{ // MessageBox.Show("¡Para aplicar los cambios, especifique una ruta de salida válida!", "Imagenes", MessageBoxButtons.OK, MessageBoxIcon.Stop); // return; //} //if (!tiene_tamanios) //{ // if (check_tamanios.Checked) // { // if (MessageBox.Show("¡No se definieron los cambios en el tamaño!\n¿Desea mantener el tamaño original de las imagenes?", "Imagenes", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) // { // return; // } // } //} progreso.Maximum = tabla_imagenes.Rows.Count - 1; if (tiene_tamanios) { ancho = int.Parse(txt_ancho.Text); alto = int.Parse(txt_alto.Text); } int cont = 0; Ruta_Entrada = txt_r_entrada.Text.Trim(); foreach (string row in imagenes) { try { string nombre = row; string tamanio_original = dim[cont]; string abrir = Ruta_Entrada + @"\" + nombre; Image image = null; image = Image.FromFile(abrir); Comprimir_Guardar_Imagen(image, nombre); hilo.ReportProgress(cont); image.Dispose(); cont++; continue; if (!tiene_tamanios) { string[] campos = tamanio_original.Split('-'); ancho = int.Parse(campos[0]); alto = int.Parse(campos[1]); } if (check_dimesion.Checked) { if (!tiene_tamanios) { image = ImageExt.Resize(image, ancho, alto); } else { image = ImageExt.ResizeProportional(image, ancho, alto, true); } } else { image = ImageExt.Resize(image, ancho, alto); } abrir = Application.StartupPath + @"\Temp\" + nombre; using (MemoryStream stream = new MemoryStream()) { if (File.Exists(abrir)) { File.Delete(abrir); } Comprimir_Guardar_Imagen(image, nombre); } hilo.ReportProgress(cont); image.Dispose(); cont++; } catch (Exception ex) { string es = ex.Message; } } //foreach (DataGridViewRow row in tabla_imagenes.Rows) //{ // try // { // indice = row.Index; // string nombre = tabla_imagenes.Rows[indice].Cells["cnombre"].Value.ToString(); // string tamanio_original = tabla_imagenes.Rows[indice].Cells["csize"].Value.ToString(); // string abrir = Ruta_Entrada + @"\" + nombre; // Image image = null; // image = Image.FromFile(abrir); // if (!tiene_tamanios) // { // string[] campos = tamanio_original.Split('-'); // ancho = int.Parse(campos[0]); // alto = int.Parse(campos[1]); // } // if (check_dimesion.Checked) // { // if (!tiene_tamanios) // { // image = ImageExt.Resize(image, ancho, alto); // } // else // { // image = ImageExt.ResizeProportional(image, ancho, alto, true); // } // } // else // { // image = ImageExt.Resize(image, ancho, alto); // } // abrir = Application.StartupPath + @"\Temp\" + nombre; // using (MemoryStream stream = new MemoryStream()) // { // if (File.Exists(abrir)) // { // File.Delete(abrir); // } // Comprimir_Guardar_Imagen(image, Ruta_Salida + @"\" + nombre); // } // hilo.ReportProgress(row.Index); // image.Dispose(); // } // catch (Exception ex) // { // string es = ex.Message; // } //} Se_Aplico = true; } } catch (Exception ex) { string es = ex.Message; Se_Aplico = false; } }