Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Imprimir calidad PictureBox

Estas en el tema de Imprimir calidad PictureBox en el foro de Visual Basic clásico en Foros del Web. Hola, tengo un form que posee: Drivelistbox - DirListBox - FileListBox - PictureBox... tengo todas las secuencias para que me visualice una imagen jpg, ahora ...
  #1 (permalink)  
Antiguo 09/08/2012, 11:08
 
Fecha de Ingreso: agosto-2012
Mensajes: 1
Antigüedad: 12 años, 4 meses
Puntos: 0
Imprimir calidad PictureBox

Hola, tengo un form que posee: Drivelistbox - DirListBox - FileListBox - PictureBox... tengo todas las secuencias para que me visualice una imagen jpg, ahora bien... necesito poder imprimir esa imagen que se encuentra dentro del PictureBox a un tamaño de 27,3 cms por 18,2 cms... me podrías ayudar? desde ya muchas gracias (te aclaro que no se mucho sobre vb así que lo poco que hice fue viendo en la web)

mi codigo es este:


Option Explicit

Dim Ancho As Single
Dim Alto As Single
Dim Porcentaje As Single

'Variable de tipo IpictureDisp para a almacenar la imagen
Dim imagen As IPictureDisp

'************************************************* **********************
'* Este procedimiento carga la imagen en la variable imagen
'* y calcula las dimensiones y el porcentaje del ancho y alto de la imagen
'* que despues mediante el procedimiento CentrarPicture se dibuja _
* con el metodo PaintPicture
'************************************************* **********************

Private Sub Establecer_Imagen(Obj As Object, RutaImg As String)

With Obj
'Borramos el contenido del picture
.Cls
'Para que al repintar no sepierda el gráfico
.AutoRedraw = True
End With

'Cargamos la imagen seleccionada del FileListBox
Set imagen = LoadPicture(RutaImg)

'Almacenamos el ancho y alto de la imagen
Ancho = imagen.Width
Alto = imagen.Height

'Sacamos el porcentaje para reescalar la imàgen
If Ancho > Obj.Width Or Alto > Obj.Height Then
If Ancho > Alto Then
Porcentaje = (Obj.Width * 100) / Ancho
Else
Porcentaje = (Obj.Height * 100) / Alto
End If

Call CentrarPicture(Obj)

Exit Sub

End If

If Ancho <= Obj.Width Or Alto <= Obj.Height Then
If Ancho > Alto Then
Porcentaje = (Obj.Width * 100) / Ancho
Else
Porcentaje = (Obj.Width * 100) / Alto
End If

End If

Call CentrarPicture(Obj)

End Sub

Public Sub CentrarPicture(Obj As Object)

Dim centro1 As Single
Dim centro2 As Single

'Sacamos el porcentaje del ancho y el alto
Ancho = ((Ancho * Porcentaje) / 100) / 0.99
Alto = ((Alto * Porcentaje) / 100) / 0.99

'La posicion X e y de la imagen dentro del Picture
centro1 = (Obj.Width - Ancho) / 2
centro2 = (Obj.Height - Alto) / 2

'Lo dibujamos
Obj.PaintPicture imagen, centro1, centro2, Ancho, Alto

'eliminamos la variable imagen
Set imagen = Nothing

End Sub




'//Controles Dir, File y Drive
Private Sub Dir1_Change()
File1 = Dir1
End Sub

Private Sub Drive1_Change()
Dir1 = Drive1
End Sub

Private Sub File1_Click()
On Error Resume Next
Call Establecer_Imagen(Picture1, Dir1 & "\" & File1.FileName)
End Sub

Private Sub Form_Load()
'Filtro para las extensiones de archivos gráficos a visualizar
File1.Pattern = "*.bmp;*.jpg;*.gif;*.jpeg"
End Sub


Private Sub Command1_Click()
imprimir
End Sub

Sub imprimir()
Printer.Print
VB.Printer.Scale (0, 0)-(200, 500)
Printer.ScaleMode = vbCentimeters
Printer.CurrentX = 50: Printer.CurrentY = 100
'for the position of the picture on paper
With Picture1
.AutoRedraw = True
.FontSize = 14
Picture1.Print ""

.Picture = .Image


Printer.PaintPicture Picture1.Picture, 0, 0, 20, 10

'En esta instruccion puedes indicarle tambien el tamaño
Printer.EndDoc
End With
End Sub


puedo imprimir la imagen, pero la calidad de impresion es muy mala, como puedo hacer para que esa calidad mejore???

Etiquetas: calidad, picturebox, vb, visual, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:58.