Ayuda con visual

Hola, necesitaría saber como hacer para guardar lo que aparece en un picturebox en un bmp, lo que tengo es una aplicación que lee los iconos de los archivos y los muestra en un picturebox, pero necesito guardarlos. Los ficheros ini los guarda pero los exe no, me podrías ayudar.
Este es el código
Option Strict On
Option Explicit On
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Public Class Form1
Private Sub Form1_Load( _
ByVal sender As Object, _
ByVal e As EventArgs) Handles MyBase.Load
' Un fichero que seguramente todos tenemos
Dim winDir As String = System.Environment.SystemDirectory
Me.txtFic.Text = winDir & "\desktop.ini"
End Sub
Private Sub btnExaminar_Click( _
ByVal sender As Object, _
ByVal e As EventArgs) Handles btnExaminar.Click
' Seleccionar un fichero
Dim openFD As New OpenFileDialog
openFD.Title = "Selecciona el fichero del que quieres el icono"
openFD.Filter = "Todos los ficheros (*.*)|*.*"
If openFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Me.txtFic.Text = openFD.FileName
End If
End Sub
Private Sub btnMostrar_Click( _
ByVal sender As Object, _
ByVal e As EventArgs) Handles btnMostrar.Click
' Mostrar el icono en el picture
Try
Dim icono As Icon
icono = System.Drawing.Icon.ExtractAssociatedIcon(Me.txtFic.Text)
' Convertirlo a Bitmap y asignarlo a la propiedad Image del picture
If icono IsNot Nothing Then
Me.picIcon.Image = icono.ToBitmap()
Me.picIcon.Image.Save("foto2.bmp")
Else
Me.picIcon.Image = Nothing
End If
Catch ex As Exception
MessageBox.Show("ERROR:" & ex.Message, _
"Al extraer el icono asociado", _
MessageBoxButtons.OK, _
MessageBoxIcon.Exclamation)
End Try
End Sub
Private Sub Form1_DragEnter( _
ByVal sender As Object, _
ByVal e As DragEventArgs) Handles MyBase.DragEnter
' Aceptar ficheros soltados
' Drag & Drop, comprobar con DataFormats
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub Form1_DragDrop( _
ByVal sender As Object, _
ByVal e As DragEventArgs) Handles MyBase.DragDrop
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim sFic As String
' Devuelve un array de tipo String,
' solo nos interesa el primer elemento
sFic = CType(e.Data.GetData(DataFormats.FileDrop, True), String())(0)
Me.txtFic.Text = sFic
End If
End Sub
Private Sub chkAjustar_CheckedChanged( _
ByVal sender As Object, _
ByVal e As EventArgs) Handles chkAjustar.CheckedChanged
' Ampliar el icono a 64x64 o dejarlo en normal
If Me.chkAjustar.Checked Then
Me.picIcon.SizeMode = PictureBoxSizeMode.Zoom
Else
Me.picIcon.SizeMode = PictureBoxSizeMode.Normal
End If
End Sub
End Class

2 respuestas

Respuesta
1
Te comento que si salva la imagen bmp como es debido. La ruta del archivo bmp es en la misma del cuadro de texto txtFic. Es decir: si tu path o cuadro texto, dice:
C:\Ejemplo\Directory\file.exe
Lo va a grabar (el .bmp), en esa dirección. Con el nombre que le estas asignando (en tu caso: "foto2.bmp"), y que aprovecho para decirte que puede cambiar el formato a tu gusto con la siguiente sintax: Me.picIcon.Image.Sabe("nombre.ext", System. Drawing. Imaging. ImageFormat.Bmp)
Probé el code, y si funciona. Lo que deberías hacer es decirle que directorio va a usar para salvar la imagen. Así no tendrás que sufrir para encontrarla.
Respuesta
1
Mi sugerencia es que valides las aplicaciones de extracción o de imágenes que están en la siguiente liga:

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas