• Jueves 18 de Abril de 2024, 13:15

Autor Tema:  Visual Basic  (Leído 12336 veces)

riciar

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Visual Basic
« en: Viernes 5 de Agosto de 2005, 15:25 »
0
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

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Visual Basic
« Respuesta #1 en: Viernes 5 de Agosto de 2005, 23:06 »
0
En este enlace encuentras un ejemplo de código fuente:

http://www.planet-source-code.com/vb/scrip...=28551&lngWId=1

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

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

riciar

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Visual Basic
« Respuesta #2 en: Sábado 6 de Agosto de 2005, 15:33 »
0
Gracias CPMARIO, voy a probar que puedo hacer.

Cyclop

  • Miembro MUY activo
  • ***
  • Mensajes: 323
    • Ver Perfil
    • http://www.geocities.com/icotext/spanish/
Re: Visual Basic
« Respuesta #3 en: Domingo 7 de Agosto de 2005, 21:19 »
0
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
Icotext Evolution v0.5 para los amantes del ASCII Art
http]

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Visual Basic
« Respuesta #4 en: Lunes 8 de Agosto de 2005, 16:44 »
0
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!.. ;)
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

riciar

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Visual Basic
« Respuesta #5 en: Miércoles 10 de Agosto de 2005, 15:37 »
0
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.

eliza_marti

  • Miembro MUY activo
  • ***
  • Mensajes: 267
    • Ver Perfil
    • http://www.solocodigo.com
Re: Visual Basic
« Respuesta #6 en: Miércoles 10 de Agosto de 2005, 20:52 »
0
: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.. ;)
Conserva la Paz con tu Alma en la bulliciosa confusión de la vida, aún con toda su farsa, penalidades y sueños fallidos, el mundo es todavia Hermoso....

http]
programacion,c,c++,
C#,java,linux,videojuegos,
directX,.NET,allegro,asm,codigo
[

riciar

  • Miembro activo
  • **
  • Mensajes: 44
    • Ver Perfil
Re: Visual Basic
« Respuesta #7 en: Jueves 11 de Agosto de 2005, 00:15 »
0
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.

cee

  • Miembro activo
  • **
  • Mensajes: 40
    • Ver Perfil
    • http://www.parche.tk
Re: Visual Basic
« Respuesta #8 en: Jueves 18 de Agosto de 2005, 15:40 »
0
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

cpmario

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Visual Basic
« Respuesta #9 en: Viernes 19 de Agosto de 2005, 16:19 »
0
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

 :)

chaja

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Visual Basic
« Respuesta #10 en: Lunes 29 de Diciembre de 2008, 16:15 »
0
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

seba123neo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.neovisualbasic.com.ar/
Re: Visual Basic
« Respuesta #11 en: Viernes 2 de Enero de 2009, 02:55 »
0
Hola,no hace flata dll  ni nada, busca por ahi esta un modulo llamado cJPEG  que hace eso...

saludos.
Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein