redimensionar una imagen en silverlight antes de subirla

preguntado por anónimo Dic 16, 2014

Buen día,

Lo que intento es cambiar el tamaño a una imagen que traigo mediante un openfiledialog, y lo que se desea es dejarla de una tamaño de 650 X 150 antes de subirla al servidor, tambien estoy haciendo uso de un bitmapimage para asignarla a un control tipo image del usercontrol

el codigo que tengo hasta el momento es el siguiente:

private void bOpenFileDialog_Click(object sender, RoutedEventArgs e) {
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = false;
bool? userClickedOK = openFileDialog1.ShowDialog();

if (userClickedOK == true) {
 BitmapImage imageSource = new BitmapImage();
 try {
  imageSource.SetSource(openFileDialog1.File.OpenRead());
   ImgPublicidad.Source = imageSource;
 }
 catch(Exception) {
  throw new ExcepcionCliente(MensajesCliente.IN_NO_ITEM_SELECCIONADO);
  }
 }
}

1 Respuesta

+1 voto
respondido por camila1987 (1,885 puntos) Dic 16, 2014
seleccionada por Administrador Ene 7, 2015
 
Mejor respuesta
Hace un rato tuve un problma similar, intenté algo asi como esto
 
 
Intenta algo como esto
 
using WriteableBitmap


private void bOpenFileDialog_Click(object sender, RoutedEventArgs e) {

 OpenFileDialog openFileDialog1 = new OpenFileDialog(); 
 openFileDialog1.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";
 openFileDialog1.FilterIndex = 1;
 openFileDialog1.Multiselect = false;
 bool? userClickedOK = openFileDialog1.ShowDialog();
 var img = null; 
	
 if (userClickedOK == true) {

	try { 
	 imageSource = BitmapFactory.New(1, 1).FromResource(openFileDialog1.File.OpenRead());
         img = imageSource.Resize(200, 300, WriteableBitmapExtensions.Interpolation.Bilinear);
     } 
     catch(Exception) { 
     throw new ExcepcionCliente(MensajesCliente.IN_NO_ITEM_SELECCIONADO); 
     } 
   } 

//aqui se devuelve la imagen
// return img 
}

 

espero te sirva

comentado por Rancid Dic 17, 2014
Hola  camila1987 muchísimas gracias por tu respuesta me funciono de la siguiente manera:

-------------------------------------------

        private void bOpenFileDialog_Click(object sender, RoutedEventArgs e)
        {

            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png";

            openFileDialog1.FilterIndex = 1;

            openFileDialog1.Multiselect = false;

            bool? userClickedOK = openFileDialog1.ShowDialog();

            
            if (userClickedOK == true)
            {

                BitmapImage imageSource = new BitmapImage();
               

                try
                {
                    imageSource.SetSource(openFileDialog1.File.OpenRead());

                    WriteableBitmap imagePub = new WriteableBitmap(imageSource);

                    imagePub = imagePub.Resize(650, 150, WriteableBitmapExtensions.Interpolation.Bilinear);
                                        
                    ImgPublicidad.Source = imagePub;

                }
                catch(Exception)
                {

                    throw new ExcepcionCliente(MensajesCliente.IN_NO_ITEM_SELECCIONADO);

                }
            }

        }
...