Red de conocimiento informático - Material del sitio web - Cómo convertir imágenes en jpg, bmp y otros formatos al formato lib

Cómo convertir imágenes en jpg, bmp y otros formatos al formato lib

BMP es el formato de almacenamiento de gráficos más simple. En C++, un amigo encapsuló una clase CDib.

Simplemente use la imagen en el archivo adjunto para usar Editar-Pegar fuente para encontrar la imagen que desea abrir y seleccione el formato que desea guardar en Guardar como. También puede abrirlo con una imagen haciendo clic derecho y seleccionando Abrir con. Además, la gestión de imágenes de Photoshop y Office2003 también tiene esta función.

Private Sub mnuconvertBMPtoJPG_Click()

Dim tmpimage As imgdes ' Descriptor de imagen

Dim tmp2image As imgdes

Dim rcode As Long

p>

Dim calidad mientras

Dim vbitcount mientras

Dim bdat como BITMAPINFOHEADER ' Reservar espacio para estructura BMP

Dim bmp_fname como cadena

p>

Dim jpg_fname As String

bmp_fname = "test.bmp"

jpg_fname = "test.jpg"

calidad = 75

'Obtener información sobre el archivo que queremos cargar

rcode = bmpinfo(bmp_fname, bdat)

Si (rcode <> NO_ERROR) Entonces

MsgBox "No se puede encontrar el archivo", 0, "¡Error encontrado!"

Salir de Sub

Fin

vbitcount = bdat.biBitCount

If (vbitcount >= 16) Then ' La imagen de 16 bits, 24 bits o 32 bits se carga en un buffer de 24 bits

vbitcount = 24

End If

'Asigna espacio para la imagen

rcode = allocimage(tmpimage, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth, bdat.biWidth)biWidth, bdat.biHeight)

' Asigna espacio para la imagen

rcode = allocimage(tmpimage, bdat., vbitcount)

Si (rcode <> NO_ERROR) Entonces

MsgBox "No hay suficiente memoria", 0, "¡Error encontrado! "

Salir del sub

Fin si

'Cargar imagen' Asigna espacio para la imagen

' p> 'Cargar imagen

p >

rcode = loadbmp(bmp_fname, tmpimage)

Si (rcode <> NO_ERROR) Entonces

freeimage tmpimage 'Imagen libre en caso de error<

MsgBox "No se puede cargar el archivo",0,"¡Se encontró un error! "

Salir Sub

Fin

Si (vbitcount = 1) Entonces ' Si cargamos una imagen de 1 bit, conviértala a 8 bits imagen en escala de grises.

Convertir a imagen en escala de grises de 8 bits

'Porque jpeg solo admite imágenes en escala de grises de 8 bits o imágenes en color de 24 bits

rcode = allocimage(tmp2image, bdat. biWidth, bdat.biHeight , 8)

Si (rcode = NO_ERROR) Entonces

rcode = convert1bitto8bit(tmpimage, tmp2image)

freeimage tmpimage 'Reemplazar imagen de 1 bit con imagen en escala de grises

copyimgdes tmp2image, tmpimage

Finalizar si

Finalizar si

' Guardar imagen

rcode = savejpg( jpg_fname , tmpimage, calidad)

freeimage tmpimage

End Sub

............. Agregue estas definiciones y declaraciones a el módulo global Medio.........

'Descriptor de imagen

Escriba imgdes

ibuff as Long

stx tan largo

sty tan largo

endx tan largo

endy tan largo

buffwidth tan largo

endy Tan largo

buffwidth Tan largo

paleta Tan largo

colores Tan largo

imgtype Tan largo

bmh As Long

hBitmap As Long

Tipo de fin

TipoBITMAPINFOHEADER

biSize es largo

biWidth es largo

biHeight es largo

biPlanes es un número entero

biBitCount es un número entero

biCompression es largo

biSizeImageas Long

biXPelsPerMeter As Long

biYPelsPerMeter As Long

biClrUsed As Long

biClrImportant As Long

Tipo de fin

Declarar función bmpinfo Lib "VIC32.DLL" (ByVal Fname como cadena, bdat como BITMAPINFOHEADER) siempre

Declarar función allocimage Lib "VIC32.DLL" (imagen como imgdes)

Declarar Función convert1bitto8bit Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes) Siempre

Declarar Sub copyimgdes Lib "VIC32.DLL" (srcimg As imgdes, desimg As imgdes)

Declarar función savejpg Lib "VIC32.DLL"

(ByVal Fname como cadena, srcimg como imgdes, calidad ByVal mientras) Mientras

"Procesamiento de imágenes ---- Crea tu propio Photoshop"

La mayor parte es código fuente. Contiene bmp<-->jgep<-->código GIF.

Además, hay muchas compras grupales de productos en Tuan IDC, que son baratos y tienen buena reputación

.