Hola, en mi aplicacion estoy pegando una imagen en un picturebox desde el Clipboard pero el problema es que solo puedo pegar imagenes ahi cuando las imagenes las copio desde algun browser pero si la imagen la tengo en algun directorio de mi pc y la copio no la pega. por que es esto??
Este es el codigo que tengo para leer la imagen
Image iFotoPaciente = Clipboard.GetImage();
Espero su ayuda, gracias!!
Soy medio nuevo en VB.NET pero no te la va a pegar, xq cuando copias un archivo .JPG por ejemplo, estas copiando uno del tipo: Clipboard.GetFileDropList y no del Clipboard.Image, no se solucionar tu inconveniente, pero debe tener solucion, talvez que te devuelva la ruta y la puedas cargar....proba!
Corrijanme si me equivoque!
Sancho.Mazorka :¬¬
Pues yo hice esto en el VB 2005:
Cree una aplicación que muestra las imágenes del portapapeles, no importa si son de archivo o copiadas directamente; osea que lee las imagenes copiadas de un browser o las copiadas desde una carpeta.
Espero que sea lo que buscas:
* Agregué una PictureBox y la deje asi como esta
* Agregué un boton y lo deje también asi como esta
* Por último agregué un timer con la propiedad "Interval" en 1000 (1 segundo)
este es el código:
'Variable que enlista los archivos del portapapeles:
Dim lista As System.Collections.Specialized.StringCollection
'Numerador de imágenes:
Dim numerador As Integer
'Variable para obtener la extensión de los archivos
'enlistados en la variable lista:
Dim Archivo As System.IO.FileInfo
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Ajuste de tamaño en la PictureBox1:
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
numerador = 0
'Se obtienen los archivos del portapapeles:
lista = Clipboard.GetFileDropList
If lista.Count = 0 Then
'Si no hay archios en el portapapeles:
MsgBox("No hay archivos en el portapapeles" & vbCrLf & "Buscando imagenes...")
'Se buscan imagenes copiadas directamenete
'(copiadas de un browser directamente, por ejemplo)
If Clipboard.ContainsImage() Then
'Si hay alguna imagen se pone en la PictureBox
PictureBox1.Image = Clipboard.GetImage()
Else
'Si no hay:
MsgBox("Tampoco hay imagenes en el portapapeles")
End If
Else
'Si si hay archivos en el portapapeles
'se coloca el primero en la PictureBox
'en caso de que sea una imagen:
Archivo = My.Computer.FileSystem.GetFileInfo(lista(numerador))
If Archivo.Extension.ToString = ".jpg" _
Or Archivo.Extension.ToString = ".bmp" _
Or Archivo.Extension.ToString = ".gif" _
Or Archivo.Extension.ToString = ".JPG" _
Or Archivo.Extension.ToString = ".BMP" _
Or Archivo.Extension.ToString = ".GIF" Then
PictureBox1.ImageLocation = lista(numerador)
End If
'Y despues se activa el timer si hay más
'imágenes:
Timer1.Enabled = True
End If
End Sub
'El timer mustra una imagen diferente cada segundo
'hasta que ya no hay más en el portapapeles:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If numerador >= lista.Count Then
Timer1.Stop()
MsgBox("no hay más imágenes")
Else
Archivo = My.Computer.FileSystem.GetFileInfo(lista(numerador))
If Archivo.Extension.ToString = ".jpg" _
Or Archivo.Extension.ToString = ".bmp" _
Or Archivo.Extension.ToString = ".gif" _
Or Archivo.Extension.ToString = ".JPG" _
Or Archivo.Extension.ToString = ".BMP" _
Or Archivo.Extension.ToString = ".GIF" Then
PictureBox1.ImageLocation = lista(numerador)
End If
numerador = numerador + 1
End If
End Sub
Espero que te sirva ;D