Reduce de tamaño tus jpg con Visual Basic.
Herramientas, Visual Basic 15 julio 2008
Esta es una pequeña aplicación que utilizo para ponerla a disposición de los inexpertos que permite reducir considerablemente el tamaño de las imágenes jpg.

Los resultados son sorprendentes y todo gracias a la librería DIjpg.dll.
El código de visual basic es el siguiente:
[c]
Private Declare Function DIWriteJpg Lib “DIjpg.dll” (ByVal DestPath As String, ByVal quality As Long, ByVal progressive As Long) As Long
Dim nombreFichero As String
Dim convertido As Boolean
Dim OriginalSize As Long
Dim FinalSize As Long
Dim sOriginalSize As String
Dim sFinalSize As String
Private Sub cmdCargar_Click()
convertido = False
Image1.Picture = LoadPicture()
Image2.Picture = LoadPicture()
With dlgCommonDialog
.DialogTitle = “Seleccionar archivo para convertir”
.FileName = “”
.CancelError = False
.InitDir = App.Path
.Filter = “Archivos .jpg (*.jpg)|*.jpg”
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
Image1 = LoadPicture(.FileName)
nombreFichero = .FileName
End With
OriginalSize = FileLen(nombreFichero)
sOriginalSize = Mid(Str(OriginalSize), 1, Len(Str(OriginalSize)) – 3)
lblOriginalSize.Caption = sOriginalSize & ” Kb”
End Sub
Private Sub cmdExit_Click()
End
End Sub
Private Sub cmdSave_Click()
Dim retval As Long
Dim loadStr As String
If convertido = True Then
MsgBox “El archivo ya ha sido convertido”
Exit Sub
End If
‘OtraVez:
MousePointer = vbHourglass
‘Initializa input path
loadStr = nombreFichero
‘Requerido por DIjpg.dll
SavePicture Image1.Picture, “C:\tmp.bmp”
‘Salvar a JPEG
On Error GoTo Error
retval = DIWriteJpg(loadStr, hshQual.Value, chkProg.Value)
If retval = 1 Then ‘correcto
Image2.Picture = LoadPicture(loadStr)
Else ‘ocurrió un error
MsgBox “La conversión NO fue exitosa. Intentelo de nuevo.”
Exit Sub
End If
‘Elimino el fichero temporal
Kill “C:\tmp.bmp”
MousePointer = vbNormal
convertido = True
FinalSize = FileLen(nombreFichero)
sFinalSize = Mid(Str(FinalSize), 1, Len(Str(FinalSize)) – 3)
lblFinalSize.Caption = sFinalSize & ” Kb”
MsgBox “La conversion se ha realizado con éxito de ” & sOriginalSize & ” Kb a ” & sFinalSize & ” Kb. ” _
& “El tamaño del fichero se ha reducido a un ” & Round(FinalSize * 100 / OriginalSize, 2) & ” %”, , “Información de conversion”
Exit Sub
Error:
MsgBox Err.Description
MousePointer = vbNormal
End Sub
Private Sub Form_Load()
convertido = False
End Sub
Private Sub hshQual_Scroll()
txtQual.Text = Str(hshQual.Value)
End Sub
[/c]

Descargas:
Ficheros fuentes
DIjpg.dll
freeSize.ocx
Si alguien está interesado en la instalación completa de la aplicación para windows que deje su huella en los comentarios y lo subiré.
Vota este artículo:
Posts anterior y posterior:
- Previo: « Desbloquear pdf online gratis.
- Siguiente: Ordenador virtual siempre disponible gratis. »


noviembre 7th, 2008 a las 3:16 am
excelente gracias
noviembre 25th, 2008 a las 11:08 pm
Estoy interesada en el ejecutable para reducir fotos
noviembre 27th, 2008 a las 11:20 pm
En realidad el ejecutable está en los ficheros fuentes pero entiendo que lo que quieres es una instalación completa.
Te la he puesto aquí para que te la descargues.
marzo 5th, 2009 a las 2:29 pm
gracias por el aporte
julio 9th, 2009 a las 9:31 pm
Buenas, en realidad me ha sido muy util el código, pero ahora presento un problema, que para windows vista me da un error, si sabes en codigo como arreglar me seria muy util en mi programa, gracias de ante mano
julio 16th, 2009 a las 2:27 am
Funciona excelente, es justo lo que estaba buscando para un pequeño proyecto, esto me ayudará a reducir el peso de las imagenes antes de guardarlas en la base de datos.
Muchas gracias
julio 25th, 2009 a las 3:02 am
hola, por un casual no tendras algo que haga todo lo contrario, es decir:
tengo una imagen en jpg y lo que nesesito es convertirla en bmp
espero respuesta
gracias.
noviembre 9th, 2009 a las 5:07 pm
Hola David,
Como podría hacer lo mismo pero utilizando mi webcam….es decir, quiero tomar fotografías con mi webcam para que cada vez que haga click en un boton me saque una foto y me la guarde como jpg????….
Ayuda pleace!
Gracias
abril 14th, 2010 a las 8:11 pm
En el ejemplo falta un componente llamado Freezise.ocx
El ejemplo no anda.
abril 17th, 2010 a las 11:58 pm
Tienes razón Elifa, lo he añadido a las descargas.
Sorry.
octubre 1st, 2010 a las 10:46 pm
excelente.. buenisimo y necesario.