SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: riciar en Viernes 5 de Agosto de 2005, 15:25

Título: Visual Basic
Publicado por: riciar en Viernes 5 de Agosto de 2005, 15:25
Hola a todos, alguien sabe como puedo salvar una imagen contenida en un .picture o .image en formato JPG y no en tipo BMP.
gracias
Título: Re: Visual Basic
Publicado por: cpmario en Viernes 5 de Agosto de 2005, 23:06
En este enlace encuentras un ejemplo de código fuente:

http://www.planet-source-code.com/vb/scrip...=28551&lngWId=1 (http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=28551&lngWId=1)

Y la DLL que hace el trabajo en este otro enlace:

http://www.kamilche.com/files/converter.dll (http://www.kamilche.com/files/converter.dll)

 :hola:


---------------------
"Corrector Ortográfico de Notas", freeware, utilidad para programadores.
Programado en VB6, con diccionario propio.

http://consultapractica.aztecaonline.net/index2.html (http://consultapractica.aztecaonline.net/index2.html)
Título: Re: Visual Basic
Publicado por: riciar en Sábado 6 de Agosto de 2005, 15:33
Gracias CPMARIO, voy a probar que puedo hacer.
Título: Re: Visual Basic
Publicado por: Cyclop en Domingo 7 de Agosto de 2005, 21:19
Porque no usas la libraria FreeImage.Dll es gratis y puedes convertir de muchos formatos a muchos formatos. Lo malo es que pesa como 2MB

Salu2

Cyclopz
Título: Re: Visual Basic
Publicado por: eliza_marti en Lunes 8 de Agosto de 2005, 16:44
Hola riciar.. :hola:  ..mira..para gravar una imagen de un Picture o de un Image pues lo que tienes que poner es:

Código: Text
  1. SavePicture Picture1.Image, "C:\tmp.bmp"
  2.  

O cualquier ruta que quieras.. :)
Ahora si quieres guardarlo en jpg y que te ocupe menos espacio pues puedes utilizar una librería muy buena llamada DIjpg.dll que te la adjunto a continuación
Y para utilizarla primero en la parte general debes de declarar el procedimiento de Dll asi:

Código: Text
  1. Private Declare Function DIWriteJpg Lib "DIjpg.dll" (ByVal DestPath As String, ByVal quality As Long, ByVal progressive As Long) As Long
  2.  

Es Function porque devuelve un valor y se debe utilizar asi ya sea en un command o cuando quieras capturar tu figurita:  :)

Código: Text
  1. Dim var As Long
  2. Dim loadStr As String
  3. loadStr = App.Path & "\test.jpg"
  4. var = DIWriteJpg(loadStr, 100, 1)
  5.  

ahora ..donde guardarás la librería? pues de forma predeterminada visual Basic la buscará donde tienes el .exe o en la carpeta en uso ..asi que la puedes poner ahí..o sino puedes definir como constante la ruta donde se encuentra la librería después de la palabra Lib en la parte de la declaración  por ejemplo ..si la pones en c:\ejemplo entonces:

Código: Text
  1. Private Declare Function DIWriteJpg Lib "c:\ejemplo\DIjpg.dll" (ByVal DestPath As String, ByVal quality As Long, ByVal progressive As Long) As Long
  2.  

Espero que te pueda servir de Guia.. :)   :hola:  bye y mucha suerte!.. ;)
Título: Re: Visual Basic
Publicado por: riciar en Miércoles 10 de Agosto de 2005, 15:37
Eliza, gracias por la info. Pero cual es la instruccion para grabar por ejemplo Picture1.picture o Imagen1.image en formato JPG.
Por otro lado, hay alguna forma de poder cambiarle el contraste, brillo, etc a las imagenes de un picturebox o un cuadro de imagenes.
Gracias de nuevo.
Título: Re: Visual Basic
Publicado por: eliza_marti en Miércoles 10 de Agosto de 2005, 20:52
:hola:  hola riciar ..tienes razón..faltaba esa parte.. mira se tiene que crear un bmp temporal ...para que la dll lo coja de memoria temporal...puedes darle cualquier nombre por ejemplo:

Código: Text
  1. Dim var As Long
  2. Dim loadStr As String
  3. loadStr = App.Path & "\test.jpg"
  4. 'Esto se requiere para la utilizacion de DIjpg.dll , el temporal
  5. 'puede ser cualquier nombre
  6. SavePicture Picture1.Image, "C:\tmp.bmp"
  7. 'Para guardar  JPEG
  8. var = DIWriteJpg(loadStr, 100, 1)
  9. 'esto es para remover el archivo temporal
  10. Kill "C:\tmp.bmp"
  11.  

 :)  ahora...si var es 1 ..todo está bien..caso contrario pudo haber ocurrido algún error...
 :)  el segundo parámetro de la función DIWriteJpg que en este caso es 100.. es un parámetro de calidad....lo puedes variar y la calidad disminuirá..al mismo tiempo que tambien disminuirá el peso del grafico...

Bueno.. :hola: Mucha suerte...espero que te te haya podido servir de ayuda.. :hola: nos vemos..bye..y nos cuentas como te fue.. ;)
Título: Re: Visual Basic
Publicado por: riciar en Jueves 11 de Agosto de 2005, 00:15
Gracias Eliza, y me abuso de tu sabiduría. No sabes como puedo cambiarle el brillo, contraste etc. a una imagen de un picture.
Gracias de nuevo.
Título: Re: Visual Basic
Publicado por: cee en Jueves 18 de Agosto de 2005, 15:40
ALGO MUCHO MAS SENCILLO QUE NO TOMA MAS DE 1 UN MINUTO

AGREGA EL COMPONENTE microsoft comon dialog control en  VISUAL BASIC

luego agregalo a tu form  agrega una image y una caja de texto llamala "nombre"

pega este codigo en el click de tu image


Private Sub Image1_Click()
CommonDialog1.Filter = "Fotografia (*.JPG)|*.JPG"
CommonDialog1.ShowOpen
Image1.Picture = LoadPicture(CommonDialog1.FileName)
nombre.Text = CommonDialog1.FileTitle
End Sub



SI NECESITAS EL CODIGO PARA GUARDARLA EN UNA BASE DE DATOS MYSQL POR EJEMPLO AVISAME



LISTO
Título: Re: Visual Basic
Publicado por: cpmario en Viernes 19 de Agosto de 2005, 16:19
Tu respuesta no corresponde a la pregunta:
Citar
Hola a todos, alguien sabe como puedo salvar una imagen contenida en un .picture o .image en formato JPG y no en tipo BMP.
gracias

 :)
Título: Re: Visual Basic
Publicado por: chaja en Lunes 29 de Diciembre de 2008, 16:15
Buenas...
Eliza pruebo el codigo que pasaste utilizando la dll que adjuntaste, pero la funcion DIWriteJpg me devuelve 2 (y no 1 como cuando indica que salio todo bien), y por lo que veo no me crea el archivo test.jpg.


El codigo que tengo es el sgte:


    Dim var As Long
    Dim loadStr As String
   
    'Guardamos la imagen
    CD.Filter = "*.jpg;*.jpeg;*.bmp"
    CD.ShowSave
   
    loadStr = App.Path & "test.jpg"

    SavePicture Picture1.Image, CD.FileName & ".bmp"
   
    'Para guardar  JPEG
    var = DIWriteJpg(loadStr, 100, 1) 'Aca me devuelve 2'
   
    'esto es para remover el archivo temporal
    Kill CD.FileName & ".bmp"



Otra pregunta, esto que va como parámetro a la funcion:   loadStr = App.Path & "test.jpg"    me va a crear el archivo test.jpg???? o ya tiene que existir.

Desde ya muchas gracias.
Saludos

Chaja
Título: Re: Visual Basic
Publicado por: seba123neo en Viernes 2 de Enero de 2009, 02:55
Hola,no hace flata dll  ni nada, busca por ahi esta un modulo llamado cJPEG  que hace eso...

saludos.